负数的二进制转换,其实,容易,容易理解。
1. 10进制负数转二进制: 原码 => 反码 => 加一 => 补码
2. 二进制数,怎么求其十进制数呢(对负数): 先减一 => 取反
方法/步骤
首先,来个-5,
实践出真知嘛。
把5转化为二进制字节形式。得到101,然后补零。
这个时候,原码就出来了。
然后,取反(0的变成1,1的变成0。)
/*一个整数按照绝对值大小转换成的二进制数,是为原码。
原码就上面的:
00000101。*/
得到了反码,
嗯,反码是和原码反着来的。
然后,加一。
//反码加一叫补码。
补码就是负数在计算机中的二进制表示方法。
那么,11111011表示8位的-5,
如果要表示16位的-5 ,
在左边添上8个1即可。
那么,知道一个负数,求二进制数的方法已经知道了,
若果,知道一个二进制数,怎么求其十进制数呢(对负数) 随便来个负数的二进制数。
先减一,反着上面的方法来。
//上面最后不是加一么,那现在就减一
取反。
//上面不是取反了么,这里也取反。
那么,接下来就是计算了。
计算结果是13,
那么这个二进制数就是:
-13。
那么,用计算器来验证一下。
其实负数的:
十进制变二进制:原码--反码--加一(补码);
二进制变十进制:减一--反码--原码。