开发者社区> 问答> 正文

计算机编程里的2进制和16进制应该怎么算啊?应该怎么转换啊

高中教程里有吧一些数字变成编码,怎么转化啊??

展开
收起
知与谁同 2018-07-18 09:33:26 3995 0
5 条回答
写回答
取消 提交回答
  • Nothing for nothing.
    就是16就进一位 2就是010101010的 呵呵 这个很麻烦 想算的话用电脑上的计算机好算 +q904238495详细和你说说
    2019-07-17 22:58:08
    赞同 展开评论 打赏
  • 2进制是逢2进1,16进制是逢16进1,我们一般用的阿拉伯数字都是10进制的,就是逢10进1,。。如10进制的10用2进制表示:1010,用16进制就是:A
    2019-07-17 22:58:08
    赞同 展开评论 打赏
  • 由右向左每四位数一组,利用8421分别与对应的位数相乘,然后求和,如1011经计算结果为B、1010为A、1000为8,所以上述2进制数转换为16进制数应为8AB。不知道你是否能明白啊,呵呵。
    2019-07-17 22:58:08
    赞同 展开评论 打赏
  • 胜天半子
    首先我们来看一个二进制数:1111,它是多少呢。你可能还要这样计算:1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往低位记,:8、4、2、1。即,最高位的权值为23 = 8,然后依次是 22 = 4,21=2, 20 = 1。 记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。 下面列出四位二进制数 xxxx 所有可能的值(中间略过部分) 仅4位的2进制数 快速计算方法 十进制值 十六进值1111 = 8 + 4 + 2 + 1 = 15 F1110 = 8 + 4 + 2 + 0 = 14 E1101 = 8 + 4 + 0 + 1 = 13 D 1100 = 8 + 4 + 0 + 0 = 12 C 1011 = 8 + 4 + 0 + 1 = 11 B 1010 = 8 + 0 + 2 + 0 = 10 A1001 = 8 + 0 + 0 + 1 = 10 9....0001 = 0 + 0 + 0 + 1 = 1 10000 = 0 + 0 + 0 + 0 = 0 0 二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。如(上行为二制数,下面为对应的十六进制): 1111 1101 , 1010 0101 , 1001 1011 F D , A 5 , 9 B  反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢。先转换F:看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢。应该是8 + 4 + 2 + 1,所以四位全为1 :1111。接着转换 D:看到D,知道它是13,13如何用8421凑呢。应该是:8 + 2 + 1,即:1011。所以,FD转换为二进制数,为: 1111 1011 由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。所以我们可以先除以16,得到16进制数:被除数计算过程商余数12341234/167727777/16413 (D)44/1604 结果16进制为: 0x4D2 然后我们可直接写出0x4D2的二进制形式: 0100 1011 0010。其中对映关系为:0100 -- 41011 -- D0010 -- 2 同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。下面举例一个int类型的二进制数:01101101 11100101 10101111 00011011我们按四位一组转换为16进制: 6D E5 AF 1B
    2019-07-17 22:58:08
    赞同 展开评论 打赏
  • 对于初学者来说,二 八 十六进制之间的换算会显得有些繁琐,不过可以以十进制为中介来换算,首先要学会二 八 十六进制分别与十进制的互化方法:

    1、转换为十进制

    二进制化为十进制

    例:将二进制数101.01转换成十进制数

    (101.01)2 = 1×2^2 + 0×2^1 + 1×2^0 + 0×2^(-1) + 1×2^(-2) = (5.25)10

    八进制化为十进制

    例:将八进制数12.6转换成十进制数

    (12.6)8 = 1×8^1 + 2×8^0 + 6×8^(-1) = (10.75)10

    十六进制化为十进制

    例:将十六进制数2AB.6转换成十进制数:

    (2AB.6)16 = 2×16^2 + 10×16^1 + 11×16^0 + 6×16^(-1) = (683.375)10

    2、十进制化二,八,十六进制(三种方法类似)

    十进制化二进制

    规则:除二取余,直到商为零为止,再将所有余数倒排。
    例:将十进制数86转化为二进制

    2 | 86…… 余0

    2 | 43…… 余1

    2 | 21…… 余1

    2 | 10…… 余0

    2 | 5 …… 余1

    2 | 2 …… 余0

    2 | 1 …… 余1
    结果:(86)10 = (1010110)2

    十进制化八进制

    方法:采用除8取余法。
    例:将十进制数115转化为八进制数

    8| 115…… 3

    8| 14 …… 6

    8| 1 …… 1
    结果:(115)10 = (163)8

    十进制化十六进制

    方法:采用除16取余法。

    例:将十进制数115转化为八进制数

    16| 115…… 3

    16| 7 …… 7

    结果:(115)10 = (73)16

    至于二,八,十六进制之间的转换,可以通过先化成十进制数,再进行转化,这样比较简单,不需要记很多。
    2019-07-17 22:58:08
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载