主页 > imtoken钱包的app地址 > 请问,1000 0000 0000 0000如何表示带符号的十六进制数?
请问,1000 0000 0000 0000如何表示带符号的十六进制数?
这个问题很简单,别想复杂:
楼主误把小数变成补码了。
转换成十进制和补码完全不同,因为补码还是二进制,是另一种二进制表示。
下面我会认为楼主需要2的补码再解决这个问题:
在解决这个问题之前,楼主需要明白,原代码表示0时有两种表示方式
+0 和 -0 +0 是 0000 符号位是 0 -0 是 1000 符号位是 1
我还要说一件事,补码可以表示的范围是去掉符号位后的-2^n~2^n-1
如果你的原始代码根本不在这个范围内,就无法表达。
楼主提供的原码是1 000 0000 0000 0000,就是原码减0(——0)
补码中没有负0的概念,补码的0和负0都是0.
所以楼主一定要把它变成+0,即0 000 0000 0000 0000 然后求补码。
所以,你的问题本身就很奇怪。因为没有人使用负 0(—0)作为补码
如果你坚持1000转换为十六进制,就按照我上面说的,改正并寻求补充。因为补码只支持正数0.
补码是二进制数字表示,而不是十进制系统。转换为十进制系统与查找补码不同。不要迷惑楼主。
第二个问题:
前面提到过1000转换为十六进制,当1000 0000 0000 0000是二进制时,可以用除号取反+1,得到2的补码。
转换成十六进制时,从左到右每4个数字组合成一个十六进制数字,因为2的4次方=16.
所以是 (1000)2=(8)16 (0000)2=(0)16) 最终结果是 (8000)16还是从左到右
给楼主补充一点:
为什么4个二进制数字代表1个十六进制:
碱基之间转换的标准是转换后它们所代表的值保持不变。
比如十六进制的10,十进制的其实就是16.因为1^16=1^10+6
而2^4=16:: 0-15的16个数字用4位二进制表示,可以重复也可以省略。左侧的十六进制数对应右侧的 4 位 2 基数。 (这是数学排列,楼主一定懂吧?)
楼主可能会问为什么高位可以一样,那是因为×16^n也等于×2^4^n。
至于1000 0000 0000 0000,小数怎么求,
1×2^12 = 1×10^...+ 1×10^... 这没关系