鱼C论坛

 找回密码
 立即注册
查看: 1180|回复: 8

[已解决]二进制、八进制、十进制、十六进制互相转换方法

[复制链接]
发表于 2020-12-13 12:26:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,不吝赐教,非常感谢~~
最佳答案
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            
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-13 12:44:35 | 显示全部楼层
要程序,还是要文字?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-13 13:13:48 | 显示全部楼层
风过无痕1989 发表于 2020-12-13 12:44
要程序,还是要文字?

文字,谢谢~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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            
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-13 13:44:28 | 显示全部楼层
本帖最后由 风过无痕1989 于 2020-12-13 15:32 编辑


二进制转八进制:从右至左,三位一组,直接写数字。比如: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取余数的办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-13 13:48:09 | 显示全部楼层

我打字比较慢,这里还有比较详尽的教程,你可去参考一下:
http://c.biancheng.net/view/1725.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-13 14:39:23 | 显示全部楼层
jackz007 发表于 2020-12-13 13:23
先看看如何装配一个十进制数

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

谢谢热心人,非常简洁易懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

感谢,非常详细易懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-13 15:34:48 | 显示全部楼层
但求过程001 发表于 2020-12-13 14:40
感谢,非常详细易懂。

不好意思,因急着赶来上班,5 楼二进制转十进制计算有误,幂是从0开始的,上面我已经改过来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 12:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表