各进制之间的换算方法

不同进制之间数字表示方法

  • 默认的数字是10进制,如:23
  • 以0开头为8进制,如:045
  • 以0b开头为二进制 如:0b11101101
  • 以0x开头为十六进制,如:0x21458adf

10->2

正整数:

除二取余(直到商为0时止),倒序排列,高位补零。

如:45

45/2 = 22...1 = 11...0 =5...1=2...1=0...1=>101101=》00101101

负整数

正数二进,取反加一

如-45

00101101——--取反---11010010----加1--11010011

小数部份

X2取整,小数累乘再取整,直到满足位数或小数部份为0为止。

如0.45f

0.45x2 = 0.9(0---0.9)x2=1.8(1--0.8)x2=1.6(1--0.6)x2=1.2(1--0.2)x2=0.4(0--0.4)x2 = 0.8(0-0.8)...

浮点数取23位,所以0.45=》0.01110011001100110011001

2->10

整数:

将二进制补足位数,首位是0表示正数,首位是1表示负数

首位是0,则将每位数x2^n求和,其中n为从右往左的下标。

如:101101

高位补零 = 00101101 =1*2^5+ 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 32+8+4+1 = 45

首位是1,则补位取反,再套用上面公式

如:11101011

取反:-00010100 = -10100 = -(12^4+12^2) = -20

小数部份

将小数的每一位x2^-n,再求和。

如:0.1101

= 0*2^0 + 1*2^-1 + 1*2^-2 + 0*2^-3 + 1*2^-4

=0+0.5+0.25+0.0625

=0.8125

16->2

首先记住下面的对应关系

进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F
二进制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

二进制转换成十六进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位,如下图

各进制之间的换算方法_第1张图片
ic3.png

将对应的四位数转位十六进制:

各进制之间的换算方法_第2张图片
ic4.png

需要注意的是,在向左(或向右)取四位时,取到最高位(最低位)如果无法凑足四位,就可以在小数点的最左边(或最右边)补0,进行换算


各进制之间的换算方法_第3张图片
ic6.png

上面是二进制转十六进制,十六进制转二进制反过来就行了

各进制之间的换算方法_第4张图片
ic7.png

你可能感兴趣的:(各进制之间的换算方法)