二进制补码的负数的补码?负数的补码怎么求
本文目录
二进制补码的负数的补码
负数的补码就是对反码加1,而正数不变,正数的原码反码补码是一样的.1.补码的得来:是为了让负数变成能够加的正数,so,负数的补码=模-负数的绝对值比如:-1 补码:1111 1111(0000 0001,也就是-1的绝对值,取反加1得来)当一个数要减1的时候,可以直接加 1111 11112.原码的得来:(负数的原码,直接把对应正数的最高位改为1)原码能够直观的表示一个负数(能直观的把真值显示出来,如 -1为1000 0001其中最高位表示符号位,不进行算术计算)3.原码和补码之间转换:补码= 反码+14.现在来推-128的补码:-128的补码:10000 0000 - 1000 0000(+128没有符号位)=1000 0000-128的反码:1111 1111(1000 0000 -1=1000 0000+1111 1111=1111 1111)-128的原码:1000 0000(反码取反)往回推:-128的原码 1000 0000 (-128,进位被舍去)-128的反码 1111 1111-128的补码 1000 0000(1111 1111(反码) + 1=1000 0000,这里实际上真正相加的是1111 1111后面的7位,第1位是符号位始终不会变,所以,当进到第8位的时候,就表示溢出了,会被舍弃)5. 0只有一个补码0000 0000(听说可以证明的),如果是这样,那么1000 0000就不会表示成-0的补码即:补码1000 0000唯一的表示-128在补码中用(-128)代替了(-0),所以补码的表示范围为: (-128~0~127)共256个.注意:(-128)也有相对应的原码和反码, 它的反码是(11111111)原码仍然是(10000000)(-128)补码的加减运算如下:下面是补码的运算:( 1 )- ( 1 )= ( 1 )+ ( -1 )=(00000001)补+ (11111111)补((11111110)+1)(反码加1)= (00000000)补= ( 0 )正确( 1 )- ( 2)= ( 1 )+ ( -2 )= (00000001)补+ (11111110)补= (11111111)补= ( -1 ) 正确(-1) = (10000001)原码=(11111110 )反码 =((11111110 )+ 1)补码
负数的补码怎么求
就比如-9 补码是11110111。
9的源码为00001001,如果是负数的话,补码为最高位置1,
其余取反也就是11110110,
然后在最低位加1即可即11110111。
计算机中的负数是以其补码形式存在的 补码=原码取反+1。
一个字节有8位 可以表示的数值范围在 -128到+127。
用二进制表示也就是 10000000 - 01111111(注意:最高位表示符号)。
最高位是1的都是负数 最高位是0的都是正数。
如-7 原码是 10000111 然后取反(最高位是符合不用取反)得11111000。
加一 得11111001 那么-7的二进制数就是 11111001。
再如 -10 原码是 10001010 取反得 11110101 加一得 11110110。
那么-10的二进制数就是 11110110。
二进制数是逢二进一 只有0和1两个数字 没有2。
更多文章:
matlab二元隐函数绘图(如何在Matlab中画隐函数曲线)
2024年6月24日 10:12
eclipse没有jsp选项怎么办(eclipse 创建web项目时没有自动生成index.jsp 请问如何处理!)
2024年7月13日 09:10
landmark分析是啥(landmark-analysis是什么意思)
2024年7月23日 06:59
visual basic 6手机版(如何下载手机版visual basic)
2024年5月7日 21:27
junit test(testng和junit有什么优缺点,该如何选择)
2024年7月3日 17:43