精华内容
下载资源
问答
  • 进制转换:二进制、八进制、十六进制、十进制之间的转换 不同进制之间的转换在编程中经常会用到,尤其是C语言。 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是...

    进制转换:二进制、八进制、十六进制、十进制之间的转换

    不同进制之间的转换在编程中经常会用到,尤其是C语言。

    将二进制、八进制、十六进制转换为十进制

    二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。

    假设当前数字是N进制,那么:

    对于整数部分,从右往左看,第i位的位权等于Ni-1

    对于小数部分,恰好相反,要从左往右看,第j位的位权为N-j

    更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是1,那么它所表示的数值大小就是该位的位权。

    1) 整数部分

    例如,将八进制数字53627转换成十进制:

    53627 = 5×84 + 3×83 + 6×82 + 2×81 + 7×80 = 22423(十进制)

    从右往左看,第1位的位权为 80=1,第2位的位权为 81=8,第3位的位权为 82=64,第4位的位权为 83=512,第5位的位权为 84=4096 …… n位的位权就为 8n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    注意,这里我们需要以十进制形式来表示位权。

    再如,将十六进制数字9FA8C转换成十进制:

    9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)

    从右往左看,第1位的位权为160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… n位的位权就为16n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    将二进制数字转换成十进制也是类似的道理:

    11010 = 1×24 + 1×23 + 0×22 + 1×21 + 0×20 = 26(十进制)

    从右往左看,第1位的位权为20=1,第2位的位权为21=2,第3位的位权为22=4,第4位的位权为23=8,第5位的位权为24=16 …… n位的位权就为2n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    2) 小数部分

    例如,将八进制数字423.5176转换成十进制:

    423.5176 = 4×82 + 2×81 + 3×80 + 5×8-1 + 1×8-2 + 7×8-3 + 6×8-4 = 275.65576171875(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 8-2=1/64,第3位的位权为 8-3=1/512,第4位的位权为 8-4=1/4096 …… m位的位权就为 8-m

    再如,将二进制数字 1010.1101 转换成十进制:

    1010.1101 = 1×23 + 0×22 + 1×21 + 0×20 + 1×2-1 + 1×2-2 + 0×2-3 + 1×2-4 = 10.8125(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 2-1=1/2,第2位的位权为 2-2=1/4,第3位的位权为 2-3=1/8,第4位的位权为 2-4=1/16 …… m位的位权就为 2-m

    更多转换成十进制的例子:

    二进制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9(十进制)

    二进制:101.1001 = 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)

    八进制:302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194(十进制)

    八进制:302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)

    十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)

    将十进制转换为二进制、八进制、十六进制

    将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。

    1) 整数部分

    十进制整数转换为N进制整数采用“N取余,逆序排列”法。具体做法是:

    N作为除数,用十进制整数除以N,可以得到一个商和余数;

    保留余数,用商继续除以N,又得到一个新的商和余数;

    仍然保留余数,用商继续除以N,还会得到一个新的商和余数;

    ……

    如此反复进行,每次都保留余数,用商接着除以N,直到商为0时为止。

    把先得到的余数作为N进制数的低位数字,后得到的余数作为N进制数的高位数字,依次排列起来,就得到了N进制数字。

    下图演示了将十进制数字36926转换成八进制的过程:

    http://c.biancheng.net/cpp/uploads/allimg/170915/1-1F9151J30K46.png

    从图中得知,十进制数字36926转换成八进制的结果为110076

    下图演示了将十进制数字42转换成二进制的过程:

    http://c.biancheng.net/cpp/uploads/allimg/170915/1-1F9151K641Z0.png

    从图中得知,十进制数字42转换成二进制的结果为101010

    2) 小数部分

    十进制小数转换成N进制小数采用“N取整,顺序排列”法。具体做法是:

    N乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;

    将积的整数部分取出,再用N乘以余下的小数部分,又得到一个新的积;

    再将积的整数部分取出,继续用N乘以余下的小数部分;

    ……

    如此反复进行,每次都取出整数部分,用N接着乘以小数部分,直到积中的小数部分为0,或者达到所要求的精度为止。

    把取出的整数部分按顺序排列起来,先取出的整数作为N进制小数的高位数字,后取出的整数作为低位数字,这样就得到了N进制小数。

    下图演示了将十进制小数0.930908203125转换成八进制小数的过程:

    http://c.biancheng.net/cpp/uploads/allimg/170918/1-1F91Q20520335.png

    从图中得知,十进制小数0.930908203125转换成八进制小数的结果为0.7345

    下图演示了将十进制小数0.6875 转换成二进制小数的过程:

    http://c.biancheng.net/cpp/uploads/allimg/170918/1-1F91QHI2I2.png

    从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011

    如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:

    十进制数字 36926.930908203125 转换成八进制的结果为 110076.7345

    十进制数字 42.6875 转换成二进制的结果为 101010.1011

    下表列出了前17个十进制整数与二进制、八进制、十六进制的对应关系:

    十进制

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    二进制

    0

    1

    10

    11

    100

    101

    110

    111

    1000

    1001

    1010

    1011

    1100

    1101

    1110

    1111

    10000

    八进制

    0

    1

    2

    3

    4

    5

    6

    7

    10

    11

    12

    13

    14

    15

    16

    17

    20

    十六进制

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    A

    B

    C

    D

    E

    F

    10

    注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:

    十进制0.51对应的二进制为0.100000101000111101011100001010001111010111...,是一个循环小数;

    十进制0.72对应的二进制为0.1011100001010001111010111000010100011110...,是一个循环小数;

    十进制0.625对应的二进制为0.101,是一个有限小数。

    二进制和八进制、十六进制的转换

    其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

    1) 二进制整数和八进制整数之间的转换

    二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

    http://c.biancheng.net/cpp/uploads/allimg/170919/1-1F919102I0949.png

    从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674

    八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:

    http://c.biancheng.net/cpp/uploads/allimg/170919/1-1F919103A2R7.png

    从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011

    2) 二进制整数和十六进制整数之间的转换

    二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

    http://c.biancheng.net/cpp/uploads/allimg/170919/1-1F919104H9539.png

    从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C

    十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:

    http://c.biancheng.net/cpp/uploads/allimg/170919/1-1F91910553H50.png

    从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110

    C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

    展开全文
  • 上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言。将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,...

    上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言

    将二进制、八进制、十六进制转换为十进制

    二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是 N 进制,那么:

    • 对于整数部分,从右往左看,第 i 位的位权等于Ni-1

    • 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j

    更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是 1,那么它所表示的数值大小就是该位的位权。

    1) 整数部分

    例如,将八进制数字 53627 转换成十进制:

    53627 = 5×84 + 3×83 + 6×82 + 2×81 + 7×80 = 22423(十进制)

    从右往左看,第1位的位权为 80=1,第2位的位权为 81=8,第3位的位权为 82=64,第4位的位权为 83=512,第5位的位权为 84=4096 …… 第n位的位权就为 8n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    注意,这里我们需要以十进制形式来表示位权。

    再如,将十六进制数字 9FA8C 转换成十进制:

    9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)

    从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。将二进制数字转换成十进制也是类似的道理:

    11010 = 1×24 + 1×23 + 0×22 + 1×21 + 0×20 = 26(十进制)

    从右往左看,第1位的位权为 20=1,第2位的位权为 21=2,第3位的位权为 22=4,第4位的位权为 23=8,第5位的位权为 24=16 …… 第n位的位权就为 2n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    2) 小数部分

    例如,将八进制数字 423.5176 转换成十进制:

    423.5176 = 4×82 + 2×81 + 3×80 + 5×8-1 + 1×8-2 + 7×8-3 + 6×8-4 = 275.65576171875(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 8-2=1/64,第3位的位权为 8-3=1/512,第4位的位权为 8-4=1/4096 …… 第m位的位权就为 8-m再如,将二进制数字 1010.1101 转换成十进制:

    1010.1101 = 1×23 + 0×22 + 1×21 + 0×20 + 1×2-1 + 1×2-2 + 0×2-3 + 1×2-4 = 10.8125(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 2-1=1/2,第2位的位权为 2-2=1/4,第3位的位权为 2-3=1/8,第4位的位权为 2-4=1/16 …… 第m位的位权就为 2-m更多转换成十进制的例子:

    • 二进制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9(十进制)

    • 二进制:101.1001 = 1×22 + 0×21 + 1×2+ 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)

    • 八进制:302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194(十进制)

    • 八进制:302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)

    • 十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)

    将十进制转换为二进制、八进制、十六进制

    将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。

    1) 整数部分

    十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:

    • 将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;

    • 保留余数,用商继续除以 N,又得到一个新的商和余数;

    • 仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;

    • ……

    • 如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。

    把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。下图演示了将十进制数字 36926 转换成八进制的过程:

    b079342a40cf224049346aa9eff6cf70.png

    从图中得知,十进制数字 36926 转换成八进制的结果为 110076。下图演示了将十进制数字 42 转换成二进制的过程:

    38a0f97179ddc42a8b2fed539e52420c.png

    从图中得知,十进制数字 42 转换成二进制的结果为 101010。

    2) 小数部分

    十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:

    • 用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;

    • 将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;

    • 再将积的整数部分取出,继续用 N 乘以余下的小数部分;

    • ……

    • 如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。

    把取出的整数部分按顺序排列起来,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,这样就得到了 N 进制小数。下图演示了将十进制小数 0.930908203125 转换成八进制小数的过程:

    d7e9cdcdd3bdbe8716ee59f7c8b03c11.png

    从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。下图演示了将十进制小数 0.6875 转换成二进制小数的过程:

    d7b03d3138ce82fb2ac89859aa16e44f.png

    从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011。如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:

    • 十进制数字 36926.930908203125 转换成八进制的结果为 110076.7345;

    • 十进制数字 42.6875 转换成二进制的结果为 101010.1011。

    下表列出了前 17 个十进制整数与二进制、八进制、十六进制的对应关系:

    十进制012345678910111213141516
    二进制0110111001011101111000100110101011110011011110111110000
    八进制01234567101112131415161720
    十六进制0123456789ABCDEF10

    注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:

    • 十进制 0.51 对应的二进制为 0.100000101000111101011100001010001111010111...,是一个循环小数;

    • 十进制 0.72 对应的二进制为 0.1011100001010001111010111000010100011110...,是一个循环小数;

    • 十进制 0.625 对应的二进制为 0.101,是一个有限小数。

    二进制和八进制、十六进制的转换

    其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

    1) 二进制整数和八进制整数之间的转换

    二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

    ee48ec201aec425eed2fbb3583b0add0.png

    从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674。八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:

    3928baa538522979b565c3b5e5112a32.png

    从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011。

    2) 二进制整数和十六进制整数之间的转换

    二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:

    7ceaefb4a7ff99e0b1670460e4fe52a0.png

    从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C。十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:

    4a006a9d5f1da2db04014492b1de290f.png

    从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110。在C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

    总结

    本节前面两部分讲到的转换方法是通用的,任何进制之间的转换都可以采用,只是有时比较麻烦而已。二进制和八进制、十六进制之间的转换有非常简洁的方法,所以没有采用前面的方法。

    展开全文
  • 二进制、八进制、十进制、十六进制关系及转换

    万次阅读 多人点赞 2019-02-21 21:20:22
    二进制,八进制,十进制,十六进制之间的关系是什么?浮点数是什么回事? 本文内容参考自王达老师的《深入理解计算机网络》一书<中国水利水电出版社&amp...

    二进制,八进制,十进制,十六进制之间的关系是什么?相互之间如何转换?

    本文内容参考自王达老师的《深入理解计算机网络》一书<中国水利水电出版社>

    一、数制解释:

    • 1、编程中经常使用的数制分类(“你编程时能使用的数制全部在这里了”):
      • ⑴、十进制 –十进制是我们生活中使用得最频繁的进制了。
        十进制的基数是10,也就是说,十进制有10个数字符号,分别是0,1,2,3,4,5,6,7,8,9。最大的数码是9(最大的数码是进制基数减1),最小的数码是0,我们平常随便写一些数字,比如:2356,35,109等等,默认这些都是十进制数(虽然2356,35也可能是表示八进制数)。如果你需要更明确表示是10进制数,可以这么表示:(2356)D–这表示了这个2356表示的是一个十进制数。那么,数制和基数的关系怎么体现呢?通过表示一个数的具体数制组成来体现,比如2356:6 * 100+5 * 101+3 * 102+2 * 103=2356。我们可以发现,给出一个数,首先从个位数开始,个位数值乘以基数的0次方(一定要记住,这里必须是从0次方开始的),十位数乘以基数的1次方,百位数乘以基数的2次方…以此类推,一直到最高位,最后将结果累加起来,这里就完全能看出2356是如何通过十进制表示的了。

      • ⑵、二进制 二进制是计算机唯一使用的进制
        二进制是计算机唯一使用的进制,因为计算机的根本是电路,电路只能表示两种情况,一种情况为没有电,可以表示数字0,一种情况为有电,可以表示数字1,再无第三种情况(有兴趣可以自行了解或者关注后期博文,这里不再赘述),所以很自然的,只有两个数字符号(0,1)的进制,就是二进制。二进制的基数是2,它的最大数码也是基数减1,就是1,最小数码是0。如果需要用二进制来表示一个数,只能是不断的01001001001111011等(想学代码的都知道摩尔定律以及集成电路,晶体管等等,一个集成电路板上面有几十亿个晶体管,所以你不用担心二进制表示数制会有限制,它可以是很大,超出你的想象),不可能出现第三个数字符号。如果出现了,就绝对不是二进制表示。如果你想明确地表示是二进制,可以这么表示:(010100101)B。
        这里就有一个问题了,比如我这么描述,这是我用的第0000 0101台电脑,这是她买的第0000 0110台法拉利,那么,你对这个0000 0101和0000 0110有确切的概念吗?具体是多少你知道吗?所以,我们在已经习惯了10进制的前提下,对二进制是非常不习惯,甚至觉得二进制是晦涩难懂的,那么,二进制能不能转换成十进制呢?可以,转换的过程同时也体现了数制和基数的关系。
        0000 0110转换为10进制:(二进制里面没有"个位、十位、百位",只能通过从左到右或者从右到左第几位来描述),从右往左开始,第一位是0,进制的基数是2,那么就是0 * 20 ,第二位是1,就是1 * 21 ,第三位是1,就是1 * 22,第四位及以上都是0了,那么不必再计算,于是0000 0110转换成十进制是0 * 20+1 * 21+1 * 22=6;0000 0101转换成十进制是5。 结果出来了,那么你对5,6这种十进制表示就有非常明确的概念了。
        在上面的十进制中也涉及到了转换过程,也是利用数位上的值乘以进制基数的幂次方的情况,但是2356经过转换以后还是2356,而二进制中却将0000 0110转换成了6,0000 0101转换成了5这些表示形式,是因为2356本身就是10进制表示,转换成10进制,所以没有任何变化,而0000 0110,0000 0101原先是二进制表示,转换成了10进制所以有变化,包括后面即将提到的八进制以及十六进制,我们都是需要转换成10进制才能有确切的概念,八进制是利用数位上的值乘以进制基数(8)的幂次方来转换,十六进制是利用数位上的值乘以进制基数(16)的幂次方来转换。在后期的编程语言学习中会存在大量的二、八、十六进制转换为十进制的情况。所以整个转换过程需要熟练掌握!

      • ⑶、八进制、十六进制 主要作用就是将数值的识别和表达简单化
        八进制在编程语言范围内没有固定的使用情形,它的基数是8,总共有8个数字符号(0,1,2,3,4,5,6,7),八进制的最大数码是基数减1,就是7,最小数码是0,如果你要确切表示一个数是八进制的,可以这么表示(12565)O或者是(12565)Q,在C和C++中八进制的表示是额外在数值前面加一个0,比如123是十进制,而0123就是八进制。
        十六进制在编程语言范围内也没有固定的使用情形(计算机网络中最新的IPv6地址使用的就是十六进制,计算机系统的注册表也会用到),它的基数是16,总共有16个数字符号(0,1,2,3,4,5,6,7,8,9,A[表示10],B[表示11],C[表示12],D[表示13],E[表示14],F[表示15]),因为0-9不够用,所以就借了6个字母,字母不区分大小写,对比前面几种进制,只要一个数的表示中出现了字母,就一定是16进制。十六进制的最大数码也是基数减1,就是15(F),最小数码也是0,如果你需要确切表示一个数是十六进制的,可以这么表示(56BBA)H,在C和C++中,十六进制的表示是额外在数值前面加一个0x,比如123是十进制,0x123是十六进制。
        八进制和十六进制转换成十进制,请根据二进制的转换说明自己试一试(替换对应的进制基数就可以了)。

        计算机中使用的都是二进制,八进制和十六进制的出现其实都不是计算机的需要,它们的出现完全是出于表达和识别的方便性考虑的。
        一个较大的数用二进制表示就太长了,比如一个int类型的100(4个字节,总共32位),用二进制表示就是0000 0000 0000 0000 0000 0000 0110 0100,这还是一个比较小的数,如果更大,将会更复杂,写这么长,确实有些不便,于是,就出现了更简易的八进制,十进制,十六进制,数制越大,表示一个数所需的数码位数就越少,所以C和C++代码中不能直接输入二进制,但是允许输入八进制、十进制、十六进制。
        那为什么没有出现什么七进制,九进制呢?因为8,16分别是2的3次方、4次方。使得这3种进制之间转换起来很方便。
        八进制、十六进制即缩短了数的表示位数,同时保持了二进制数的表达特点。
        -----引用自王达老师《深入理解计算机网络》

      • ⑷、二、八、十六进制转换成十进制 –上文提到的其他进制转换成十进制都是用乘的,很明显这里是上文的逆过程,都是用除的
        十进制转换成二进制(你如果喜欢钻研的话,可以将二进制转换成十进制,以及十进制转换成二进制的过程并排成两列放在一起,你就能看明白很多东西):
        下面我直接上示例了:
        十进制48转换成二进制(由于工具有限,我将用表格形式说明相互间的关系,希望有兴趣又对这些知识点并不熟悉的码友能根据我的描述用纸笔再演练一遍):

        计算过程 结果 余数
        48/2 24 0
        24/2 12 0
        12/2 6 0
        6/2 3 0
        3/2 1 1

        计算过程主要说明了整个演算的步骤以及各个值是如何得来的,因为是转换成二进制。所以用48除以进制基数2,直到结果为1(为什么说直到结果为1,因为不管任何数,按照上面的演算方式不断除以2,最后的结果一定是1),然后将结果的1放在最前面,后面依次写上每一步的余数,注意,这里每一步的余数是倒序(也就是从下往上排列),也就是说排在结果1后面的余数是计算过程3/2的余数,然后是计算过程6/2的的余数…所以最后得出十进制数48的二进制表示是110000。如果是byte类型,需要在前面补0,直至8位:0011 0000,如果是int类型就是:0000 0000 0000 0000 0000 0000 0011 0000。
        十进制550转换成二进制:

        计算过程 结果 余数
        550/2 275 0
        275/2 137 1
        137/2 68 1
        68/2 34 0
        34/2 17 0
        17/2 8 1
        8/2 4 0
        4/2 2 0
        2/2 1 0

        结果为:10 0010 0110,如果是int类型,则补齐32位,结果是:0000 0000 0000 0000 0000 0010 0010 0110。
        实际上,二进制为什么需要从最后的余数开始,你们仔细思考一下:是不是和二进制转换成十进制的时候,进制基数2的幂次方是从0开始的有关。
        还有一个问题需要强调,就是为什么上面表格中的奇数除以2,不会出现浮点数,这是因为,上面的除法都是整数类型,不涉及浮点数类型,所以,整数类型的除法结果都是整数,直接舍弃了小数部分,所以31除以2,结果是15,而不会是15.5。
        试验: Java中整数的除法运算直接舍弃了小数部分,仅保留整数部分!
        八进制转换成十进制:
        这里我就直接上示例了:
        十进制48转换位八进制的表示:

        计算过程 结果 余数
        48/8 6 0

        结果为60,这里需要特别注意的是,千万不要受二进制的影响,非要得到结果为1,这里不可能为1,因为进制基数变成了8,所以,48/8得出的结果是6,已经比进制基数8更小了,就没有再计算下去的必要(因为再计算下去就是6/8,结果是0了),于是从结果6开始,倒序排列各步骤的余数,得到的结果就是60(10进制转换成8进制的时候,一旦得到的结果比8更小,则说明是最后一步了)。
        十进制360转换为八进制表示:

        计算过程 结果 余数
        360/8 45 0
        45/8 5 5

        结果5比进制基数8小,所以结果就是550。
        十六进制转换为十进制:
        十进制48转换位十六进制的表示:

        计算过程 结果 余数
        48/16 3 0

        十六进制与8进制一样,只要得到的结果比进制基数更小,则停止运算,所以结果是30。
        十进制100转换位十六进制的表示:

        计算过程 结果 余数
        101/16 6 5

        结果为:65。

      • ⑸、二、八、十六进制间的相互转换
        二进制转换为八进制:
        这里转换的时候是有技巧的,之前说过了,为什么是八进制、十六进制,而不是七进制,九进制,因为8=23,16=24
        所以二进制转换成八进制的时候,只需要将二进制的表示从右往左开始,每三位二进制数为1组 ,分到最后如果不足3位,那么剩下多少位就是多少位,再用每组的二进制的每一位数从右往左依次乘以20、21、22,然后相加,得出一组的结果,最后将所有组的结果相连,得出最终的结果(这里注意了,二进制转换为八进制的时候是分组了,并且最后是将每组的结果相连,而不是相加)。
        这里,我具体举个例子:
        二进制(0011 0101)B转换为八进制表示是什么结果:
        首先,将二进制从右至左进行分组:
        分别是 第一组:101 第二组:011 第三组:00。实际上,第三组没意义了,因为都是0,我们来关注前两组
        第一组计算过程是:1 * 20+0 * 21+1 * 22=5;
        第二组计算过程是:0 * 20+1 * 21+1 * 22=6;
        所以最后的结果是65。也就是用6和5直接相连,而不是相加,这里还要注意一下相连的顺序问题,是6–5的方向。
        PS:这里你需要回顾一下二进制转换10进制的方法。加深一下印象,好区别(以上二进制转换成十进制是53)。
        二进制转换为十六进制
        二进制转换为十六进制就是将二进制每四位二进制为一组,其他与八进制转换为二进制一样。
        八进制转换为二进制
        只需要将八进制的每一个数用三位二进制表示,然后相连既可以。
        十六进制转换为二进制
        只要需要将十六进制的每一个数用四位二进制表示,然后相连即可。
        八进制转换为十六进制
        不要以为八和十六之间存在倍数2的关系就有什么捷径,实际上没有,需要通过二进制中转一下。
        所以需要先将八进制转换成二进制,在转换成十六进制。
        十六进制转换成八进制
        需要将十六进制转换成二进制,再将二进制转换成八进制。

      • ⑹、浮点数的表示与转换 –浮点数说白了就是我们常说的小数,只不过专业的叫法是"浮点数"
        上面说的都是有关二进制,八进制,十进制,十六进制整数之间的相互转换,现在我们来看一下这些进制的浮点数如何表示以及相互转换的(主要说明二、八、十六进制的浮点数如何转换成十进制的浮点数)。
        相关进制的浮点数表示其实和整数的表示是一样的,比如二进制的浮点数表示:
        这里我直接上示例了:
        (0.1101)B就是表示这是一个二进制的浮点数。
        (0.1101)O或者(0.1101)Q就是表示这是一个八进制的浮点数。
        (0.1101)D就是表示这是一个十进制的浮点数。
        (0.1101)H就是表示这是一个十六进制的浮点数。
        那么二、八、十六进制的浮点数如何转换成十进制的浮点数呢?
        这里我以二进制位例子详细说明,八进制和十六进制的转换方法与二进制是一样的,只是需要将对应的进制基数替换一下就行。
        (0.1101)B这样的二进制浮点数转换成十进制的浮点数是多少呢?
        转换的方式为:先提一个问题:为什么我这里举例是纯小数(整数部分为0),因为整数部分的转换和整数的转换是一样的,上面已经说明了,这里仅说明浮点数的转换。
        需要将(0.1101)B转换为十进制的浮点数,首先从小数点右起第一位开始,这里的右起第一位是1,就用1 * 2-1,第二位是1,继续用1 * 2-2,第三位是0,用0 * 2-3,第四位是1,用1 * 2-4,没有第五位了,如果有,则继续按照以上逻辑以此类推,直到二进制的所有有效位数用完,然后将所有的结果全部相加,即得到了十进制的浮点数表示。
        这里再清晰写一遍:
        (0.1101)B转换为10进制的浮点数过程:
        1 * 2-1+1 * 2-2+0 * 2-3+1 * 2-4 = (0.6875)D。
        这里需要特别注意的是:整数部分的转换幂指数是从0开始的,但是浮点数转换的幂指数是从-1开始的,这个非常的重要,并且位数和幂指数是对应的,第一位幂指数是-1,第二位幂指数是-2,第三位幂指数是-3…以此类推,最后将所有结果相加。
        八进制浮点数转换为十进制浮点数只需要将进制基数变为8,十六进制浮点数转换为十进制浮点数只需要将进制基数变为16。如果不熟悉的码友可以自行用纸笔演练一遍,只是要牢记,需要替换上对应的进制基数。
        实际上,浮点数的二进制、八进制、十进制、十六进制之间的相互转换可以分为两部分,小数点左边的整数部分转换与上文提到的整数转换完全一致,小数点右边的小数部分转换与上文提到的浮点数转换也完全一致(再次提醒,需要替换成对应的进制基数),所以一个浮点数的转换,可以分成整数部分的转换,小数部分的转换,再将转换结果通过小数点"."连起来就是最后的结果了。
        在此,再次感谢王达老师的《深入理解计算机网络》一书对本文的启发!

    PS:时间有限,有关计算机进制的内容会持续更新!今天就先写这么多,如果有疑问或者有兴趣,可以加QQ:2649160693,并注明CSDN,我会就博文中有疑义的问题做出解答。同时希望博文中不正确的地方各位加以指正!

    展开全文
  • 上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言。 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常...
    对于基础薄弱的读者,本节的内容可能略显晦涩和枯燥,如果觉得吃力,可以暂时跳过,用到的时候再来阅读。但是本节所讲的内容是学习编程的基础,是程序员的基本功,即使现在不学,迟早也要回来学。

    上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言。

    将二进制、八进制、十六进制转换为十进制

    二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。


    假设当前数字是 N 进制,那么:

    • 对于整数部分,从右往左看,第 i 位的位权等于Ni-1
    • 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j


    更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是 1,那么它所表示的数值大小就是该位的位权。

    1) 整数部分

    例如,将八进制数字 53627 转换成十进制:

    53627 = 5×84 + 3×83 + 6×82 + 2×81 + 7×80 = 22423(十进制)

    从右往左看,第1位的位权为 80=1,第2位的位权为 81=8,第3位的位权为 82=64,第4位的位权为 83=512,第5位的位权为 84=4096 …… 第n位的位权就为 8n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    注意,这里我们需要以十进制形式来表示位权。

    再如,将十六进制数字 9FA8C 转换成十进制:

    9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)

    从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。


    将二进制数字转换成十进制也是类似的道理:

    11010 = 1×24 + 1×23 + 0×22 + 1×21 + 0×20 = 26(十进制)

    从右往左看,第1位的位权为 20=1,第2位的位权为 21=2,第3位的位权为 22=4,第4位的位权为 23=8,第5位的位权为 24=16 …… 第n位的位权就为 2n-1。将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

    2) 小数部分

    例如,将八进制数字 423.5176 转换成十进制:

    423.5176 = 4×82 + 2×81 + 3×80 + 5×8-1 + 1×8-2 + 7×8-3 + 6×8-4 = 275.65576171875(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 8-2=1/64,第3位的位权为 8-3=1/512,第4位的位权为 8-4=1/4096 …… 第m位的位权就为 8-m


    再如,将二进制数字 1010.1101 转换成十进制:

    1010.1101 = 1×23 + 0×22 + 1×21 + 0×20 + 1×2-1 + 1×2-2 + 0×2-3 + 1×2-4 = 10.8125(十进制)

    小数部分和整数部分相反,要从左往右看,第1位的位权为 2-1=1/2,第2位的位权为 2-2=1/4,第3位的位权为 2-3=1/8,第4位的位权为 2-4=1/16 …… 第m位的位权就为 2-m


    更多转换成十进制的例子:

    • 二进制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9(十进制)
    • 二进制:101.1001 = 1×22 + 0×21 + 1×2+ 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625(十进制)
    • 八进制:302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194(十进制)
    • 八进制:302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375(十进制)
    • 十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)

    将十进制转换为二进制、八进制、十六进制

    将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。

    1) 整数部分

    十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是:

    • 将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数;
    • 保留余数,用商继续除以 N,又得到一个新的商和余数;
    • 仍然保留余数,用商继续除以 N,还会得到一个新的商和余数;
    • ……
    • 如此反复进行,每次都保留余数,用商接着除以 N,直到商为 0 时为止。


    把先得到的余数作为 N 进制数的低位数字,后得到的余数作为 N 进制数的高位数字,依次排列起来,就得到了 N 进制数字。


    下图演示了将十进制数字 36926 转换成八进制的过程:

    从图中得知,十进制数字 36926 转换成八进制的结果为 110076。


    下图演示了将十进制数字 42 转换成二进制的过程:


    从图中得知,十进制数字 42 转换成二进制的结果为 101010。

    2) 小数部分

    十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法。具体做法是:

    • 用 N 乘以十进制小数,可以得到一个积,这个积包含了整数部分和小数部分;
    • 将积的整数部分取出,再用 N 乘以余下的小数部分,又得到一个新的积;
    • 再将积的整数部分取出,继续用 N 乘以余下的小数部分;
    • ……
    • 如此反复进行,每次都取出整数部分,用 N 接着乘以小数部分,直到积中的小数部分为 0,或者达到所要求的精度为止。

    把取出的整数部分按顺序排列起来,先取出的整数作为 N 进制小数的高位数字,后取出的整数作为低位数字,这样就得到了 N 进制小数。


    下图演示了将十进制小数 0.930908203125 转换成八进制小数的过程:


    从图中得知,十进制小数 0.930908203125 转换成八进制小数的结果为 0.7345。


    下图演示了将十进制小数 0.6875 转换成二进制小数的过程:


    从图中得知,十进制小数 0.6875 转换成二进制小数的结果为 0.1011。


    如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在一起即可。例如:

    • 十进制数字 36926.930908203125 转换成八进制的结果为 110076.7345;
    • 十进制数字 42.6875 转换成二进制的结果为 101010.1011。


    下表列出了前 17 个十进制整数与二进制、八进制、十六进制的对应关系:

    十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
    二进制 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
    八进制 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
    十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F 10


    注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数。请看下面的例子:

    • 十进制 0.51 对应的二进制为 0.100000101000111101011100001010001111010111...,是一个循环小数;
    • 十进制 0.72 对应的二进制为 0.1011100001010001111010111000010100011110...,是一个循环小数;
    • 十进制 0.625 对应的二进制为 0.101,是一个有限小数。

    二进制和八进制、十六进制的转换

    其实,任何进制之间的转换都可以使用上面讲到的方法,只不过有时比较麻烦,所以一般针对不同的进制采取不同的方法。将二进制转换为八进制和十六进制时就有非常简洁的方法,反之亦然。

    1) 二进制整数和八进制整数之间的转换

    二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐。下图演示了如何将二进制整数 1110111100 转换为八进制:

    从图中可以看出,二进制整数 1110111100 转换为八进制的结果为 1674。

    八进制整数转换为二进制整数时,思路是相反的,每一位八进制数字转换为三位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将八进制整数 2743 转换为二进制:


    从图中可以看出,八进制整数 2743 转换为二进制的结果为 10111100011。

    2) 二进制整数和十六进制整数之间的转换

    二进制整数转换为十六进制整数时,每四位二进制数字转换为一位十六进制数字,运算的顺序是从低位向高位依次进行,高位不足四位用零补齐。下图演示了如何将二进制整数 10 1101 0101 1100 转换为十六进制:


    从图中可以看出,二进制整数 10 1101 0101 1100 转换为十六进制的结果为 2D5C。


    十六进制整数转换为二进制整数时,思路是相反的,每一位十六进制数字转换为四位二进制数字,运算的顺序也是从低位向高位依次进行。下图演示了如何将十六进制整数 A5D6 转换为二进制:


    从图中可以看出,十六进制整数 A5D6 转换为二进制的结果为 1010 0101 1101 0110。

    在C语言编程中,二进制、八进制、十六进制之间几乎不会涉及小数的转换,所以这里我们只讲整数的转换,大家学以致用足以。另外,八进制和十六进制之间也极少直接转换,这里我们也不再讲解了。

    总结

    本节前面两部分讲到的转换方法是通用的,任何进制之间的转换都可以采用,只是有时比较麻烦而已。二进制和八进制、十六进制之间的转换有非常简洁的方法,所以没有采用前面的方法。

    展开全文
  • 对python进制转换(二进制、十进制和十六进制)及注意事项感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!...二进制转十进制使用函数:int()实例:#结果是4int("100",2)...
  • 上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言。将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,...
  • 进制转换:二进制、八进制、十六进制、十进制之间的转换 不同进制之间的转换在编程中经常会用到,尤其是C语言。 将二进制、八进制、十六进制转换为十进制 二进制、八进制和十六进制向十进制转换都非常容易,就是“按...
  • 在我们接触编程知识时,总会接触有关进制转换的知识,最常见的就是10进制与二进制十六进制之间的转换,很多时候我们总会遗忘,虽然现在也出现了很多可以直接使用的网络在线的进制转换工具,但考试中,我们就要靠...
  • 分类: C++编程心得2009-09-20 20:48 745人阅读 评论(0) 收藏 举报 二进制、十进制以及十六进制之间的相互转换 前面在网友的指导下总结了二进制转十六进制的方法,我从图书馆找资料的时候,看到了一篇文章:进制转换...
  • bin() 10进制转2进制 oct() 10进制转8进制 hex()10进制转16进制 int() *进制转10进制 各进制之间转换 ↓ 2进制 8进制 10进制 16进制 2进制 - bin(int(x, 8)) bin(int(x, 10)) bin(int(x, 16)) 8进制 oct...
  • 在我们接触编程知识时,总会接触有关进制转换的知识,最常见的就是10进制与二进制十六进制之间的转换,很多时候我们总会遗忘,虽然现在也出现了很多可以直接使用的网络在线的进制转换工具,但考试中,我们就要靠...
  • /* 将二进制分成四位一组如:000110001111成十进制分别为: * 0001 = 1,1000 = 8, 1111 = 15,大于等于10的调用 * decimalToHex(int val)函数转换为字母"A-F",将结果写入字符串即:18F */ if (b.length()...
  • 二进制十六进制

    千次阅读 2018-08-16 08:40:17
    课程导言 【最早的编程语言是二进制语言,也是计算机能够直接...通过本篇的学习,你将了解到为什么计算机能够直接识别二进制语言,二进制的计数原理以及与十进制、十六进制之间的数值转换。】   在讲述二进制之...
  • // 输入十进制整数,输出同样内存排布的float表示 inline float i2f(int i) { float f = 0; assert(sizeof(int) == sizeof(float)); memcpy(&f, &i, 4); return f; } ...
  • 上节我们对二进制、八进制和十六进制进行了说明,本节重点讲解不同进制之间的转换,这在编程中经常会用到,尤其是C语言。SANFUC:进制学习(1):二进制、八进制和十六进制​zhuanlan.zhihu.com将二进制、八进制、...
  • 这里写自定义目录标题内置参数优先!进制简述相互转换 ...二进制:0b1111011,数字0加字幕b(binary)开头 十六进制:0x7b,数字0加字母x(hex)开头 相互转换 先转换为十进制 // 要转换,需要提供相应进制 prin...
  • 在我的印象里面进制互相转换确实是很常见的问题,所以在Python中,自然也少不了把下面这些代码收为util。这是从网上搜索的一篇也的还可以的Python进制转换,经过验证可以使用。下面贴出它的实现代码:#!/usr/bin/env...
  • 用8086/8088汇编语言编程,实现十进制或十六进制二进制的转换。要求通过键盘输入数字,有H为16进制、无H为10进制,然后按照二进制输出。例如:输入1、2、回车,那么第二行应该显示1100;如果输入1、2、H、回车,...
  • 在学习计算机编程和原理等课程时,常用十六进制来表示数,十六进制数和二进制数之间的互相转换简单而且自然,十六进制使用下面的符号表示数(A是10、F是15):0 1 2 3 4 5 6 7 8 9 A B C D E F16进制数十进制数(3...
  • 首先,先来理解一些概念,计算机底层使用的数制是二进制,用java编程使用的是十进制,但java底层仍使用二进制。不管任何语言,二进制,十进制,十六进制等都是一样的,我们起码都要了解知道,面试中也会有加分的,就...
  • 二进制类似,十进制转十六进制对16整除,得到的余数的倒序即为转换而成的十六进制,特别地,如果超过10以后,分别用ABCDEF或abcdef来代替10、11、12、13、14、15。 C++实现十进制转换十六进制 主函数main.cpp...
  • 概述 十进制:逢十进一,生活中常用的数值。... 十六进制:逢十六进一,采用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六个数字,A-F分别表示十进制中的10-15,在编程语言中常用0x开头来表示十六进制数...
  • 常用的一些转换方法,整理如下,在编程中,用得比较多的是十进制跟十六进制二进制跟八进制用的很少。 namespace Jerry.Framework.Socket.Common { public class Utility { /// <summary> /// 将...
  • 下面在安静的音乐中,让我们开始学习吧公式库网03:40来自生活用电在我们接触编程知识时,总会接触有关进制转换的知识,最常见的就是10进制与二进制十六进制之间的转换,很多时候我们总会遗忘,虽然现在也出现了很...
  • 计算机内部使用了二进制数据,为了节约空间,又定义了八进制和十六进制来表示二进制数据。对于普通人来说,十进制更加容易阅读,本例子将实现一个进制转换器。 package mytest; import java.awt.BorderLayout; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 392
精华内容 156
关键字:

二进制转十六进制编程