二进制/十进制转换。

参考:中文维基

简介:

In mathematics and digital electronics, a binary number is a number expressed in the base-2 numberal system or binary numeral system, which uses only two symbos: zero(0) and one(1)。

在数学和数字电路(集成电路),二进制数字是以2个数字为基础的系统(或二进制数字系统)表示的数字,它只使用2个符号0和1。

数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。

每个数字代表一个bit(Binary digit)

四则运算:

对2个符号进行0,1 ,加减乘除:

  • 加法:0+0=0,0+1=1,1+0=1,1+1=10
  • 减法:0-0=0,1-0=1,1-1=0,10-1=1
  • 乘法:0×0=0,0×1=0,1×0=0,1×1=1
  • 除法:0÷1=0,1÷1=1

十进数转成二进数

例子:十进制数:59.25

59是整数部分,0.25是小数部分。分别使用不同的计算方式:

  • 整数部分:
    1. 进行带余除法运算。得到一个整数和一个余数。
    2. 对得到的整数继续进行第一步操作。直到步骤N得到商数为0。(商数:除法运算的结果。一般是指整数部分)
    3. 把上面多次带余除法运算得到的余数按照步骤从后往前排列组合。方法:(N代表第N步骤的余数):N组合N-1组合..1。组合得到就是二进制的整数数字部分。本例得到111011。
  • 小数部分:
    1. 对小数部分乘以2,得结果x,取x的整数部分。
    2. 对结果x乘以2,取其整数部分。如此反复,直到乘法得到的数字的小数部分全部为0为止。
    3. 读取所有乘法计算后得到的数字的整数部分,从第一步到最后一步组合。得到二进制的小数部分。本例是01.
整数部分:
59 ÷ 2 = 29 ... 1
29 ÷ 2 = 14 ... 1
14 ÷ 2 =  7 ... 0
 7 ÷ 2 =  3 ... 1
 3 ÷ 2 =  1 ... 1
 1 ÷ 2 =  0 ... 1
小数部分:
0.25×2=0.5
0.50×2=1.0

最后得到二进制数字59.25(10) = 111011.01(2)

二进位转成十进位

整数部分的转换方法:个位数乘以2的0次幂, 然后10位数乘以2的1次幂,如此每加一位那么2的次幂就加1,最后把得到数字相加就是十进制数字。

100101 2 = [ (  1 ) × 2 5 ] + [ (  0 ) × 2 4 ] + [ (  0 ) × 2 3 ] + [ (  1 ) × 2 2 ] + [ (  0 ) × 2 1 ] + [ (  1 ) × 2 0 ]
100101 2 = [  1 × 32 ] + [  0 × 16 ] + [  0 × 8 ] + [  1 × 4 ] + [  0 × 2 ] + [  1 × 1 ]
1001012 = 3710

非整数部分的转换方法:利用负次幂。例如0.01(2)

0 × 2−1 (0 × 12 = 0)
1 × 2−2 (1 × 14 = 0.25)

得到十进制数字:0.25

猜你喜欢

转载自www.cnblogs.com/chentianwei/p/11921394.html
今日推荐