进制运算基础

image-20220119165839638

进制

进制的概述

  • 进位制是一种计数方式,亦称为进位计数法或位值计数法
  • 有限数字符号来表示无限数值的方法
  • 使用的数字符号的数目称为这种进位制的基数或底数

常见的进制

  • 二进制
  • 八进制
  • 十进制
  • 十六进制
  • 二十进制
  • 六十进制
    其中二十进制出现在玛雅文明以及因努伊特人的因努伊特数字,六十进制主要用在时间、坐标、角度等量化数据中,比如1小时等于60分钟

二进制运算的基础

计算公式:N=dn-1 X r^n-1+dn-2 X r^n-2……d1r+d0,例如十进制数1024的表示法为:

1
2
N=1024
N=1*10^3+0*10^2+2*10^1+4

二进制数10000000000的表示法为:

1
N=1*2^10

二进制转换为十进制(整数)

通过按权展开法把一个二进制数字转换为十进制数字:

1
2
N=(01100101)=1*2^6 + 1*2^5 + 1*2^2 +1 = 101
N=(11101101)=1*2^7 + 1*2^6 + 1*2^5 + 1*2^3 + 1*2^2 + 1 = 237

十进制转换为二进制(整数)

通过重复相除法把一个十进制数转换为二进制数:

1
2
3
4
5
6
7
8
9
N=101

101/2 50 1
50/2 25 0
25/2 12 1
12/2 6 0
6/2 3 0
3/2 1 1
1/2 0 1

把余数从下往上排就是十进制数101的二进制01100101

二进制转换为十进制(小数)

通过按权展开法把一个二进制数字小数转换为十进制数字:

1
2
N=(0.11001)=1*2^-1 + 1*2^-2 + 1*2^-5 = 1/2 + 1/4 + 1/32 = 25/32 = 0.78125
N=(0.01011)=0*2^-1 + 1*2^-2 + 0*2^-3 + 1*2^-4 + 1*2^-5 = 1/4+1/16+1/32 = 11/32 = 0.34375

十进制转换为二进制(小数)

通过重复相乘法把一个十进制小数相乘,比如:

1
2
3
4
5
6
7
N=(0.11001)=25/32

25/32*2 50/32 = 1 + 9/16 1
9/16*2 18/16 = 1 + 1/8 1
1/8*2 2/8 = 0 + 1/4 0
1/4*2 2/4 = 0 + 1/2 0
1/2*2 2/2 = 1 1