最近忽然起兴,在看一些程序,但是一堆16进制代码看的我脑袋晕头转向。。
没办法,底子太薄,开始补习吧!
先说10进制转换成2进制
比如42想转换成2进制,那就把42一直拿2往下除,除到商为0
42/2 = 21余0
21/2 = 10余1
10/2 = 5余0
5/2 = 2余1
2/2 = 1余0
1/0 = 0余1
从下往上写为 00101010
1前面那两个0是补位的..没什么用途.
想转成10进制也很简单,
^ 这个是幂的符号吧= =。 数学好长时间没学,早忘光了。。。
幕的个数是从0开始往前数
8位 7位 6位 5位 4位 3位 2位 1位
0*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0
0 + 0 + 32 + 0 + 8 + 0 + 2 + 0
最终结果等于42 哦耶!
------下面为16进制-----------------------
16进制打头必须带有0x,但是这个并不在进制转换中出现。。 (当初就不知0x是什么,还傻呵呵的问0x是多少。。)
16进制中, 从A开始,代表A=10,一直到F=15。。
问:为什么要用A来代表10呢?
因为数不够用了。10不就占两个格了么。(哈。我是这么理解的。。)
16转2进制有规律表,太占地方放下面了。。
比如拿上面的42来说,42 = 00101010 这是10进制转2进制
每4个数单独拿出来
0010 = 2
1010 = A
转换成16进制, 42 = 2A 啊哈~
16进制直接转10也好转
2A用16进制数字来表示 2A = 2 10
这里10看成一位。
2位 1位
2*16^1 + 10*16^0
32 + 10
结果42。 完美!
----------------------------------------------------------------------------
16进制转换成2进制有下面这个规律,附上手打表一张.. 少位的拿0补..
0 = 0
1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111
8 = 1000
9 = 1001
A = 1010
B = 1011
C = 1100
D = 1101
E = 1110
F = 1111