二进制、八进制、十进制、十六进制互相转换方法
如题,不吝赐教,非常感谢~~ 要程序,还是要文字? 风过无痕1989 发表于 2020-12-13 12:44要程序,还是要文字?
文字,谢谢~~ 本帖最后由 jackz007 于 2020-12-13 14:02 编辑
先看看如何装配一个十进制数
1357 = 1 * 10 ^ 3 + 3 * 10 ^ 2 + 5 * 10 ^ 1 + 7 * 10 ^ 0
不难看出,要装配出一个十进制数,就把这个数各个位上的值乘以相应位上 10 的幂次,然后,把这些数加在一起。
装配八进制数也依此类推。
八进制数:0o1357
1 *8 ^ 3 + 3 *8 ^ 2 + 5 *8 ^ 1 + 7 *8 ^ 0
十六进制数当然也是依此类推
十六进制数 :0x1357
1 * 16 ^ 3 + 3 * 16 ^ 2 + 5 * 16 ^ 1 + 7 * 16 ^ 0
再来看看如何把一个数转换成十进制
以十进制数 1357 为例
商 余
1357 / 10 135 7
135 / 10 13 5
13 / 10 1 3
1 / 10 0 1
把所有余数按照逆序排列,得到十进制数 1357
可见,一个数要转换成十进制,就用这个数除以 10,记下余数,然后用得到的商再除以 10,记下余数,如此往复,直到商为 0 为止,把所有的余数逆序排列。
转换八进制数的方法依此类推
比如,把 5678 转换成八进制:
商 余
5678 / 8 709 6
709 / 8 88 5
88 / 8 11 0
11 / 8 1 3
1 / 8 0 1
得到 5678 = 0o13056
转换十六进制数当然也是依此类推
比如,把 5678 转换为 16 进制:
商 余
5678 / 16 354 14
354 / 16 22 2
22 / 16 1 6
1 / 16 0 1
得到 5678 = 0x162e 本帖最后由 风过无痕1989 于 2020-12-13 15:32 编辑
但求过程001 发表于 2020-12-13 13:13
文字,谢谢~~
二进制转八进制:从右至左,三位一组,直接写数字。比如:10101001001 ---> 10 101 001 001,直接写成:2511;
二进制转十六进制:从可至左,四位一组,直接写数字(10到16用字母 A、B、C、D、E、F),比如:1100001110100101 ---> 1100 0011 1010 0101,直接写数字:C3A5
二进制转十进制,以2为底按位乘幂,然后相加:比如:1100001110100101(2) = 2^15 +2^14 +2^9+2^8+2^7+2^5+2^2+2^0 = 32768+16384+512+256+128+32+4+1= 49829
十进制转二进制则采用除2取余数的办法 但求过程001 发表于 2020-12-13 13:13
文字,谢谢~~
我打字比较慢,这里还有比较详尽的教程,你可去参考一下:
http://c.biancheng.net/view/1725.html jackz007 发表于 2020-12-13 13:23
先看看如何装配一个十进制数
不难看出,要装配出一个十进制数,就把这个数各个位上的值乘以相 ...
谢谢热心人,非常简洁易懂 风过无痕1989 发表于 2020-12-13 13:48
我打字比较慢,这里还有比较详尽的教程,你可去参考一下:
http://c.biancheng.net/view/1725.html
感谢,非常详细易懂。 但求过程001 发表于 2020-12-13 14:40
感谢,非常详细易懂。
不好意思,因急着赶来上班,5 楼二进制转十进制计算有误,幂是从0开始的,上面我已经改过来了
页:
[1]