进制
二进制
逢二进一,最大为一
一般八位一组,因为八位为一个字节
二进制的基数为2
1=1x2^0
10=1x2^1
100=1x2^2
……以此类推
举例:
1010=1x2^3 + 0x2 ^2 + 1x2 ^1 + 0x2 ^0
十进制
逢十进一,最大为九
十进制的基数为10
1=1x10^0
10=1x10^1
100=1x10^2
……以此类推
举例:
1540 = 1x10^3 + 5x10 ^2 + 4x10 ^1 + 0x10 ^0
八进制,十六进制
八进制,逢八进一,最大为七
十六进制,逢十六进一,数字中最大为九,九之后为大写的应为字母,A,B,C,D,E,F 分别代表10,11,12,13,14,15。
八进制与十六进制同上,只不过需要把基数改为8和16。
进制之间的转换
十进制转二进制
俩种方法都可以转换成功,推荐方法二。
二进制转十进制
二进制通常为八位
例如 1111 1111
自右向左所对应的十进制的 1 2 4 8 16 32 64 128
所以上述二进制所对应的十进制为255。
八位二进制中是1的找到相对应的数字然后将他们相加,相加的结果为十进制,八位二进制中为0的,不予计算
八进制转二进制
记住一个口诀:记住一二四,一位拆三位
例如
126
将他的每一位数拆分开来
1 2 6
把每一个数对应的3位数的二进制(因为八进制最高为七而二进制的第四位为8,所以只取二进制的三位)
001 010 110
二进制转八进制
也有一个口诀:记住一二四,三位和一位
与八进制转二进制相反
例如 110 111 001
6 7 1
每三位二进制一个八进制
十六进制转二进制
与八进制转二进制类似
他也有类似的口诀:记住一二四和八,一位拆分成四位
例如 1A2F
0001 1010 0010 1111
每一位十六进制的数字对应一个四位的二进制数(因为16进制最高为15而二进制的前四位和为15,所以取二进制的四位)
二进制转十六进制
与二进制转八进制类似
口诀为:记住一二四和八,四位融合成一位
例如 1 1011 1001
1 B 9
自右向左,四位二进制一个十六进制,到了最左边不 够四位时,用0补全
如上述例子,补全为0001 1011 1001
原码、反码、补码
如何在二进制中表示正数和负数
取八位二进制中的最左边的数为正负
0位正数,1为负数
例如:0 1111111 127
1 1111111 -127
正数的原码、反码、补码
正数的原码、反码、补码都是一样的
例如
原码 0 1111111
反码 0 1111111
补码0 1111111
负数的原码、反码、补码
负数的原码、反码、补码是不相同的,负数的反码是在其原码的基础上,符号位不变,其他位取反;而负数的补码是在其反码的的基础上,符号位不变,反码加一。
例如
原码 1 1111111
反码 1 0000000
补码 1 0000001
为什么要有反码和补码
计算机中只存在加法,所以如果是只有原码的话
而用反码的话,就存在俩个0,一正一负
所以有了补码