但求过程001 发表于 2020-12-13 12:26:27

二进制、八进制、十进制、十六进制互相转换方法

如题,不吝赐教,非常感谢~~

风过无痕1989 发表于 2020-12-13 12:44:35

要程序,还是要文字?

但求过程001 发表于 2020-12-13 13:13:48

风过无痕1989 发表于 2020-12-13 12:44
要程序,还是要文字?

文字,谢谢~~

jackz007 发表于 2020-12-13 13:23:25

本帖最后由 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 13:44:28

本帖最后由 风过无痕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取余数的办法

风过无痕1989 发表于 2020-12-13 13:48:09

但求过程001 发表于 2020-12-13 13:13
文字,谢谢~~

我打字比较慢,这里还有比较详尽的教程,你可去参考一下:
http://c.biancheng.net/view/1725.html

但求过程001 发表于 2020-12-13 14:39:23

jackz007 发表于 2020-12-13 13:23
先看看如何装配一个十进制数

   不难看出,要装配出一个十进制数,就把这个数各个位上的值乘以相 ...

谢谢热心人,非常简洁易懂

但求过程001 发表于 2020-12-13 14:40:47

风过无痕1989 发表于 2020-12-13 13:48
我打字比较慢,这里还有比较详尽的教程,你可去参考一下:
http://c.biancheng.net/view/1725.html

感谢,非常详细易懂。

风过无痕1989 发表于 2020-12-13 15:34:48

但求过程001 发表于 2020-12-13 14:40
感谢,非常详细易懂。

不好意思,因急着赶来上班,5 楼二进制转十进制计算有误,幂是从0开始的,上面我已经改过来了
页: [1]
查看完整版本: 二进制、八进制、十进制、十六进制互相转换方法