二进制补码以及为什么要使用补码

二进制补码以及为什么要使用补码1、计算机系统的内部以二进制形式存储数据。2、在Java程序中输入的十进制的数据都会被自动转换为二进制,Java内部也以二进制来进行数值运算,但返回的结果是十进制。补码规则1、在计算机系统中,数值一律用二进制的补码来存储。2、二进制的最高位是符号位,0表示正数,1表示负数。3、正数的值是其本身,负数的值是最高位(符号位)不变,其它位逐位取反,再加1。4、两数相加,若最高位(符号位)

大家好,欢迎来到IT知识分享网。

  1. 计算机系统的内部以二进制形式存储数据。
  2. Java程序中输入的十进制的数据都会被自动转换为二进制,Java内部也以二进制来进行数值运算,但返回的结果是十进制。

补码规则

  1. 在计算机系统中,数值一律用二进制的补码来存储。
  2. 二进制的最高位是符号位,0表示正数,1表示负数。
  3. 正数的值是其本身,负数的值是最高位(符号位)不变,其它位逐位取反,再加1。
  4. 两数相加,若最高位(符号位)有进位,则进位被舍弃。
    例如: 4位二进制补码中,5-3的结果是2

(1101)2 //2是二进制的意思
0010 //逐位取反
0011 // 加1
(1101)2 = -3

补码运算的特征

  1. 计算机中正数和负数的关系是取反加一。
    【示例】在四位二进制数中,已知3的二进制值是0011,若要求-3,则
    0011 3
    1100 逐位取反
    1101 +1
  2. 补码运算是封闭的: 运算结果保留在补码范围之内, 超范围就溢出。
    【示例】四位二进制的补码运算中,请计算5+4的结果。
    结果为:-7
  3. 4位二进制补码最多能表示24=16个数,数的范围是-8~7
  4. 8位二进制补码最多能表示28=256个数,数的范围是
    -128~127

补码运算的原理

“正数+负数=模”。
模:某种类型数据的总数,例如:
4位二进制数的模是24=16
8位二进制数的模是28=256

为什么要使用补码?

下面的故事都是我瞎编的~~
计算机专业的人你懂得,大家都不想重复造车轮。搞出来加法电路以后,就在大家一筹莫展想怎么搞个减法的电路的时候,我的女儿(好吧,我没有)拿着一道数学题找到了我,5+(-2)=?,我惊奇的发现,减法和加法之间似乎有着某种py交易。
所以我们是不是可以用加法电路就可以完成减法的运算呢?
每当老师上课的时候提出这种设问,答案往往是肯定的(23333)
咱们首先画个大饼,就是公司画给咱们的那种。
在这里插入图片描述
比如5-3=2。我们发现,5往后面退后3个格子就可以得到2这个结果,但是没有注意到的是,5往前面走7个格子也可以得到2这个结果,但是这个7和3有什么必然的联系吗?在这个饼里面他的模是10!3+7=模!
所以5-3=2在计算机的算法就应该是下面的过程:
(-3)2=011
(-3)=001
在这里插入图片描述
这里我们舍掉最高位就是结果2。实际上,因为这里是3位二进制数,110对应的10进制数为6,6+2=8,所以其实如果写成4个二进制数,就是
0101+1101=0010 ,8位二进制的话,就是00000101+11111101=10000010结果仍然是2

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14331.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信