进制转换与原码,反码,补码和移码

个人理解,萌新求大佬指正!

1.进制转换
十转二: 例如127 : 2|127 -----1 1111111
2|63 -----1
2|31 -----1
2|15 ------1
2|7--------1
2|3--------1
1|0---------1
R进制数转换成十进制数通常使用按权展开法。具体操作方式为:将R进制数的每一位数值用Rk 形式表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。当该位位于小数点左边, k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小 数点之间数码的个数加1。(反正看不懂)

二转十 例如 101010100 1*2的8密+1*2的6密+1*2的4密+1*2的2米 =340 256 +64 +16+4=340

最常用的是“除以R取余法”


二进制转八进制:将每3个二进制数转换为八进制数; 二进制转十六进制数:将每4个二进制数转换为八进制数; 八进制转二进制:将每个八进制数转换为3位二进制数; 十六进制转二进制:将每个十六进制数转换为4位二进制数。 上面的转换都是以小数点作为计算数码个数的起点。八进制数和十六进制数转换可先转换为二 进制数,然后再转换为目标进制。(没试过,感觉很复杂)

2. 原码、反码、补码、移码
原码
最高位既是第一个位置符号位(0正,1负),其余各位代表数值本身的绝对值的表示形 式。(自己理解为7位数形式,加符号位8位,2进制数)
如 +1的原码0000 0001 -1的原码1000 0001 +2的原码0000 0010 - 2的原码 1000 0010
运算是错的 如 (0000 0001)2+(1000 0001)2=(10000010)2 1+-1=-2

反码
正数的反码与原码相同。负数的反码符号位为1,其余各位为该数绝对值的原码按位取反。这个 取反的过程使得这种编码称为“反码”。
-1 的反码 1111 1110 -2的反码 1111 1101

运算 概念错的 (00000001)2+(11111110)2=(11111111)2 1+-1=-0

补码
正数的补码与原码相同。负数的补码是该数的反码加1,这个加1就是“补”。
-1的补码 1111 1111 -2的反码1111 1102
补码可以运算出正确的结果
(0000 0001)2+(1111 1111)2=(0000 0000)2 1 +-1=0

移码
移码是对补码的符号位取反得到的一种编码。移码只用于表示浮点数的阶码,所以只用于整 数。
-1的移码 0111 1111 -2的移码0111 1101 1的移码1000 0001

对上面的运算懵吗? 2进制逢二进一。

扫描二维码关注公众号,回复: 6692610 查看本文章

好像还看到了浮点数计算,表示看不懂!!!!!

猜你喜欢

转载自www.cnblogs.com/xuzhiwen/p/11112203.html