进制
所有数据在计算机底层都以二进制的补码的形式来存储。
对于整数,有四种表达方式:
-
二进制:只有0和1,满2进1。
-
十进制:0-9,满10进1.
-
八进制:0-7,满8进1,以数字0开头。
-
十六进制:0-9及A-F,满16进1,以0x或0X开头。A-F不区分大小写。
二进制整数有三种形式:
-
原码:直接将一个数值换成二进制数,最高位(最左边)是符号位。
-
负数的反码:符号位确定为1,其余对原码按位取反。
-
负数的补码:反码+1。
正数的原码、反码、补码都相同。
二进制转换为十进制
以下讨论情况均为正数。
二进制数在计算机底层是以补码的形式存在,负的二进制数转换成十进制需要先将二进制数的补码-1,除了符号位以外全部取反得到其原码再进行计算。
注意:如何判断一个二进制数是正数还是负数?需要看它换算成十进制的值是多少。例如
1001 0000这个二进制数,如果这个是正数,那么转换成十进制就是144。因为8位二进制数最大值是0111 1111 = 127,很明显144超出范围了,所以1001 0000的最高位代表的是负数,所以10001 0000 = -16。
上面是有符号的情况,没有符号的情况下8位二进制数最大值为1111 1111 = 255,那么1001 0000 = 144。
十进制转换为二进制
注意:十进制整数转换为N进制整数采用“除N取余,逆序排列”。
八进制转十进制
1、用八进制数除以10,得出的余数逆序排列。
2、
十进制转八进制
十六进制转十进制
十进制转十六进制
附:十六进制与十进制对应表