2 进制,8进制,10进制,与16 进制的转换
今天松哥(北大物理哥)给我们描述了一种进制转换的实用办法。
首先是 8 进制和 2进制:
我们想想2的三次方是8,那么在8进制转2进制的过程中,8进制的每一位都可以划分成2进制的三位,那么我们演示一下:
27 = (2:010 7: 111) = 010111
基于上述原理:2进制转 8 进制就可以是 3位二进制位合并 1位8进制位:
。。。010111 = (010: 2 111: 7) = 27
16进制与2进制:
那么 16 进制等于 2 的四次方,更有趣的是,操作系统的内存地址表示法(大端法和小端法)都是用的 16进制表示,以16进制的1位变成2进制的4位之后组合即可完成:
16 进制的F代表 15, 因为从10开始无法通过一个位表示数字,所以A表示10,B表示11,F表示15.
0xFF = (F: 1111 F: 1111) = …111111111;
基于上述: 2进制转16进制也是一样, 4位合并1位即可
10进制与 2 进制
2进制与10进制之间无明显的指数关系,因此利用 2 进制 累加 项数可得到10进制结果。
利用其位数值 * 与 2 的指数的积(最低位开始指数为 0,第二低位为 1,开始向高位递增)
.。。。。。101101 = 1 x 2^0 + 0 x 2 ^1 + 1 x 2 ^1 +… = 45
10 进制转 2进制就使用 取余除2法即可,不过存的是以低位排列的数
8 / 2 = 4,存入数组中 8%2 的值
4/2 = 2 存入数组中 4%2的值
2 / 2 = 1 存入数组中 2 % 2 的值
1 / 2 = 0 存入数组中 1 % 2 的值
因此 8 的二进制是 0001
10进制与 8 进制或 16 进制
将 10 进制转换为 2 进制再转换为 8 进制或 16 进制。