二进制与十进制转换
二进制转十进制
正整数
- 各位值乘以2的正幂次,幂次N为每位的所处index
- 将各个位计算结果相加
例子:
负整数
- 取补码
- 同上转成十进制
- 加上“-”号
例子:
小数
- 各位值乘以2的负幂次,幂次N为每位的所处index
- 将各个位计算结果相加
例子:
十进制转二进制(有符号)
正整数,除二取余法
- 十进制数/2 取 余数,余数只可能为0或1
- 将商结果,继续除2取余数,直到商为0
- 将所有余数从低到高组成一组二进制
例子:
负整数
- 和正整数一样取到二进制值
- 补全位数
- 取补码
例子:
小数,小数乘二取整法
- 整数部分同上
- 小数部分乘2,取整数,整数部分只可能为0或1
- 剩余的小数继续X2,直到小数为0
- 将所有的整数顺序组成一组二进制为小数部分拼接到整数
例子:
二进制与八进制转换
八进制
八进制:Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1
进制转换:取三合一法
二进制转八进制
- 将二进制数从右向左按三位展开
- 不足三位高位补全,高位补0
- 每三位按转十进制的方式(乘2幂次)转成十进制数
- 最后将结果拼接
例子:
八进制转二进制
- 将八进制数每一位拆开
- 每一位都单独通过除2取余法,得到二进制数
- 将每位二进制数补全到3位,高位补0
- 最后将结果拼接
例子:
二进制与十六进制转换
十六进制
十六进制:简写为hex或下标16,一种以16为基数的计数法,一般用数字0到9和字母A到F(或a~f)表示,其中:A ~ F表示10 ~ 15,逢16进1
取四合一法:二进制和十进制转换方法和八进制一样,只是将制数拆成3位变成4位
二进制转十六进制
- 将二进制数从右向左按4位展开
- 不足4位高位补全,高位补0
- 每4位按转十进制的方式(乘2幂次)转成十进制数
- 最后将结果拼接
例子:
十六进制转二进制
- 将十六进制数每一位拆开
- 每一位都单独通过除2取余法,得到二进制数
- 将每位二进制数补全到4位,高位补0
- 最后将结果拼接
例子:
十进制和八、十六进制转换
可以利用二进制为纽带:将要转的制数转成二进制,再用之前的方法转到要求的对应进制。
也可以直接用下面方法直接转
十进制转八进制
- 除8取余,直至商为0
- 过程和十进制转二进制类似。
例子:
八进制转十进制
- 将八进制数按位展开
- 各位值乘以8的正幂次,幂次N为每位的所处index
- 将各个位计算结果相加
例子:
十进制转十六进制
- 除16取余,直至商为0
- 过程和十进制转二进制类似。
例子:
十六进制转十进制
- 将十六进制数按位展开
- 各位值乘以16的正幂次,幂次N为每位的所处index
- 将各个位计算结果相加
例子:
八进制和十六进制之间的转换
第一种:他们之间的转换可以先转成二进制然后再相互转换。
第二种:他们之间的转换可以先转成十进制然后再相互转换。