补码计算方法

举报
CodeAllen 发表于 2021/10/29 23:27:42 2021/10/29
【摘要】     ​    ​很基础的知识,但是确实很多人并不知道怎么计算,总结了下,可以收藏,需要的时候看下。 与编程息息相关 学习目标:             在vc++6...

    ​    ​很基础的知识,但是确实很多人并不知道怎么计算,总结了下,可以收藏,需要的时候看下。

与编程息息相关

学习目标:

            在vc++6.0中int类型所能存储的数字的范围是多少

             int类型所能存储的最大正数用十六进制表示:7FFF FFFF

             int类型所能存储的绝对值最大的负数用十六进制表示是:80000000

           最小负数的二进制代码是多少

            最大正数的二进制代码是多少

            已知一个整数的二进制代码求出原始的数字

            数字超过最大的正数会怎样


补码:

            原码:也叫 符号-绝对值码

                        最高位表示正    1表示负 ,其余二进制位的数字的绝对值的二进制位

                         

                        原码简单,但是加减复杂,存在加减乘除四种运算,增加了CPU的负荷

                        而且0的表示不一样

            反码:运算不便,也没有在计算机中应用

            移码:表示数值平移n位,n称为移码量

                      移码主要用于浮点数的阶码的存储

*******************************************

补码:重点是补码,主要是用来解决整数的存储

十进制转二进制

                              除3取余,直到商为0,余数倒序排列

*******************************************

1.负整数转二进制

                                 先求与该负数相对应的正整数的二进制代码,然后将所有为取反,末尾加一,不够位数时,左边补1

例如:(-3)

           正整数为:011

                  取反:100

            末尾加一:101

            占四个字节,32位,所以补29个1

                      就是          FFFF FFFD


  
  1. /*2018年1月6日13:01:18
  2. *补码运算
  3. */
  4. # include<stdio.h>
  5. int main(void)
  6. {
  7.     int i =-3;
  8.     printf("%#X\n",i);
  9.     return 0;
  10. }
  11. /*输出:0XFFFFFFFD
  12. *
  13. */ 

2.已知二进制求十进制

      如果首位是0,则表明是正整数,按普通的方法来

      如果首位是1,则表明是负整数

                    将所有位取反,末位加一,所得数组就是该负数的绝对值,位数不够补1(因为是负数)

       101111

先取反加一     010001

负数的绝对值: -17

注意:在计算机实验时,前边注意

   


  
  1. /*2018年1月6日19:34:47
  2. *补码运算,二进制计算
  3. */
  4. # include<stdio.h>
  5. int main(void)
  6. {
  7.     int i =0xFFFFFFEF;
  8.     printf("%d\n",i);
  9.     return 0;
  10. }
  11. /*
  12. *输出:-17
  13. */

            

***************

作业:8位二进制转化为十进制

0000 0000                 0

0000 0001                 1

.

.0111 1111                  7F             7*16+15=127       最大值(二进制是有正负的)

1000  0000                  -128

记住下边图就行了

文章来源: allen5g.blog.csdn.net,作者:CodeAllen的博客,版权归原作者所有,如需转载,请联系作者。

原文链接:allen5g.blog.csdn.net/article/details/89977242

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。