❶ 补码不够8位在哪里补
补码不够8位在二进制里补。
8位二进制补码的计算:先按位取反,也就是把1变成0,把0变成1,得到反码;把得到反码末位再加1即得到补码。
十进制数转换成八位二进制补码,需要先将十进制数转换成七位二进制数,不足七位则在二进制数前补零凑足七位,然后根据这个数是正数还是负数对其求补,得到八位二进制补码。因此八位二进制补码的表示范围是-128~+127。
假设
当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12)。在12为模的系统里,加10和减2效果是一样的,因此凡是减2运算,都可以用加10来代替。若用一般公式可表示为:a-b=a-b+mod=a+mod-b。对“模”而言,2和10互为补数。
以上内容参考:网络-补码
❷ 已知[X]原=10110101,求真值X及X的补码和反码
[X]反码=11001010,(符号位不动,将X的原码低7位逐位取反)。
[X]补码=11001011(将X的反码加1)。
计算机机器数中最简单的一种形式,数值位就是真值的绝对值,符号位位“0”时表示正数,符号位为“1”时表示负数,原码又称带符号的绝对值。
为了方便整数和小数区别,整数的符号位与数值位之间用“,”隔开,小数的符号位与数值位之间用“.”隔开。
(2)补码在哪里图片扩展阅读:
反码通常是用来由原码求补码或者由补码求原码的过渡码。根据定义,可以得到机器数的反码的整数和小数中“0”的表示形式各有2种,“+0”和“-0”不一样,以8位机器数为例,整数的“+0”原码为0,0000000,反码为0,0000000。
整数的“-0”原码为1,0000000,反码为1,1111111;小数的“+0”原码为0.0000000,反码为0.0000000;小数的“-0”原码为1.0000000,小数的“-0”反码为1.1111111。反码跟原码是正数时,一样;负数时,反码就是原码符号位除外,其他位按位取反。
❸ 简单的补码问题
4位二进制补码,所表示的范围为-8到+7。
全部如下:
0111 是 +7 的补码
0110 是 +6 的补码
0101 是 +5 的补码
0100 是 +4 的补码
0011 是 +3 的补码
0010 是 +2 的补码
0001 是 +1 的补码
0000 是 0 的补码
1111 是 -1 的补码
1110 是 -2 的补码
1101 是 -3 的补码
1100 是 -4 的补码
1011 是 -5 的补码
1010 是 -6 的补码
1001 是 -7 的补码
1000 是 -8 的补码
楼主看看,哪里有 11000 ?
❹ 补码疑惑
2^8+x 这里的X是负数
应该是1 0000 0000 - 0000 0010 = 1111 1110
负整数的补码可以通过对其绝对值部分逐位求反,并在最低位加1求得。
-2
反码加1就是补码的啦!
1000 0010
到
1111 1101
再就是
1111 1110
❺ 补码问题啊!高手请进求救!
[X]补=10100100,[X]反=10100011,[X]原=11011100
[x]补=[X]反+1
❻ 补码转十进制的问题,有图有真相,求解释
数据宽度是3位的话当然是-4
补码n位数 {an-1,an-2 ,an-3,.....a0}这是n位数,那么十进制就是-an-1 * 2n-1 +an-2*2n-2+....+ao*2的0次方
所有n-1,n-2都是次数
❼ 二进制补码怎么计算的
1、正数的补码表示:
正数的补码 = 原码
负数的补码 = {原码符号位不变} + {数值位按位取反后+1} or
= {原码符号位不变} + {数值位从右边数第一个1及其右边的0保持不变,左边安位取反}
以十进制整数+97和-97为例:
+97原码 = 0110_0001b
+97补码 = 0110_0001b
-97原码 = 1110_0001b
-97补码 = 1001_1111b
2、纯小数的原码:
纯小数的原码如何得到呢?方法有很多,在这里提供一种较为便于笔算的方法。
以0.64为例,通过查阅可知其原码为0.1010_0011_1101_0111b。
操作方法:
将0.64 * 2^n 得到X,其中n为预保留的小数点后位数(即认为n为小数之后的小数不重要),X为乘法结果的整数部分。
此处将n取16,得
X = 41943d = 1010_0011_1101_0111b
即0.64的二进制表示在左移了16位后为1010_0011_1101_0111b,因此可以认为0.64d =0.1010_0011_1101_0111b 与查询结果一致。
再实验n取12,得
X = 2621d = 1010_0011_1101b 即0.64d =0.1010_0011_1101b,在忽略12位小数之后的位数情况下,计算结果相同。
3、纯小数的补码:
纯小数的补码遵循的规则是:在得到小数的源码后,小数点前1位表示符号,从最低(右)位起,找到第一个“1”照写,之后“见1写0,见0写1”。
以-0.64为例,其原码为1.1010_0011_1101_0111b
则补码为:1.0101_1100_0010_1001b
当然在硬件语言如verilog中二进制表示时不可能带有小数点(事实上不知道哪里可以带小数点)。
4、一般带小数的补码
一般来说这种情况下先转为整数运算比较方便
-97.64为例,经查询其原码为1110_0001.1010_0011_1101_0111b
笔算过程:
-97.64 * 2^16 = -6398935 =1110_0001_1010_0011_1101_0111b,其中小数点在右数第16位,与查询结果一致。
则其补码为1001_1110_0101_1100_0010_1001b,在此采用负数的补码 = {原码符号位不变} + {数值位按位取反后+1} 方法
5、补码得到原码:
方法:符号位不动,幅度值取反+1or符号位不动,幅度值-1取反
-97.64补码 =1001_1110(.)0101_1100_0010_1001b
取反 =1110_0001(.)1010_0011_1101_0110b
+1 =1110_0001(.)1010_0011_1101_0111b 与查询结果一致
6、补码的拓展:
在运算时必要时要对二进制补码进行数位拓展,此时应将符号位向前拓展。
-5补码 = 4'b1011 = 6'b11_1011
ps.原码的拓展是将符号位提到最前面,然后在拓展位上部0.
-5原码 = 4‘b’1101 = 6'b10_0101,对其求补码得6'b11_1011,与上文一致。
(7)补码在哪里图片扩展阅读:
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
❽ 大学的计算机课,关于原码补码移码的问题,我想不明白的问题在下图上
你的这本“书”应该是印刷错了,或者根本是你看错了。
正确的结果是1,1100。最后不知道你从哪里又搞出一个1来的。
这是原码转补码的计算公式。当x<0时,应当是2^n-|x|而不是2^n-x。
计算过程为
[-110,0100]原
= 2^7 - 110,0100
= 1000,0000 - 110,0100
= 1,1100
最后我想问,你这书是哪个山寨出版社出的?
❾ 那个补码之后是什么图形
的是面积是和它的边长有关系的,这是图形的一个属性...
大家认真看下那个图形,本来的周长是4*8=32
但切割了之后周长就变成了13*2+5*2=36,也就是图形的属性已经改变了,不能再和本来的图形联系起来,也就是那两个图形已经是独立的了,不能混为一谈了...
可以这样理解,那个图形里有64个小方格,不管你怎么切割,在没有切割到那些小方格的前提下(因为只要一切割到小方格,那么,那些小方格的属性也就改变了,面积也就跟随着改变了),不管你怎么切割,面积都不会改变...
但其实那个图形有漏洞,即,图形切割之后再进行拼接也不能完全重合(仔细看那些三角形,其中有的三角形的边从中间切割,但拼接之后却是没有从中间切割的),这也正是拼接之后周长改变了的原因...
还有值得提的一点,图形不一样,同样的周长所围成的图形的面积也是不一定一样的,比如同样周长32,围成的正方形面积是64,但围成的圆,那个圆的面积却达到了78.5...(圆的周长=3.14*直径,圆的面积=3.14*半径的平方,呵呵,其实严格点说是约等于,为了计算方便,就把圆周率取为3.14)...
最后提的这点还可以解释为,公路的电缆坑盖为什么要造成圆的原理(虽然包括其他一些比如圆盖不会掉进去之类的原因)...
呵呵...