进制转换

· 进制转换

1.数制

1.1、数制定义

​ 数制,也称为进位计数制,是按进位的方法进行计数,用一组固定的符号和统一的规则来表示数值的方法。一种进位计数值由数码、基数和位权三部分组成。

数码:

​ 数码是组成该数的所有数字和字母

基数:

​ 进位计数制中所使用的不同基码的个数称为该进位计数制的基数

位权:

​ 计算每个数码在其所在位上代表的数值时所乘的常数称为位权。位权是一个指数,以基数为底,其幂次是该数码的数位

​ 在计算机中由于二进制电路具有设计简单、运算简单、工作可靠、逻辑性强等优点,因此使用的是二进制计数制。但人们日常使用的是十进制,所以计算机的输入和输出也要使用十进制数据。此外,歪了编制程序的方便,还常常使用八进制和十六进制。

1.2、数制的规律

​ 数制虽然有许多类型,但其技术运算规律都有共同的规律和特点。

​ (1)逢N进一,借一当N。N是指基数。即,每位计满N时向高位进一,向高位借一位,相当于借N。

​ (2)位权表示法。处在不同位置上的数码所表示的值各不相同,每个数码位置决定了它的值。任何一种数制表示的数都可以写成按位权展开的多项式之和。

1.3、常用的数值

1.3.1、十进制(Decimal)

​ 十进制是使用0、1、2、3、4、5、6、7、8、9十个符号作为数码,基数为10,相邻两位之间逢十进一。

第i位权10^i对应的十进制数第i位权10^i对应的十进制数
0100=11
1101=1010-110-1=0.10.1
2102=100100-210-2=0.010.01
3103=10001000-310-3=0.0010.001
··················
n-110^(n-1)100···0(n-1个0)-m10-m0.00···01(小数点后m-1个数)
例:十进制数1234.5可表示为:

​ 1234.5=1×103+2×102+3×101+4×100+5×10-1

​ 式中,103、102、101、100、10-1分别是千位、百位、十位、个位和十分位的位权

1.3.2、二进制(Binary)

​ 0 = 0 二进制特点:2种符号(0-1)
​ 1 = 1 逢二进一
​ 10 = 2
​ 11 = 3
​ 100 = 4
​ 101 = 5
110 = 6
111 = 7
1000 = 8

例:二进制数1011.1可表示为:

​ 1011.1=1×23+0×22+1×21+1×20+1×2-1

二进制数满足加减乘除四则运算:

加法:0+0=0、0+1=1、1+0=1、1+1=0(向高位进一):1111+1011=11000

减法:0-0=0、1-0=1、1-1=0、0-1=1(向高位借一当二):1001-0111=0010

乘法:0×0=0、0×1=0、1×0=0、1×1=1 :1101×1000=1101000

除法:0÷0=0、0÷1=0、1÷0(无意义)、1÷1=1 :1101÷1000=1.101

二进制的逻辑运算:

​ 二进制的逻辑运算主要有4种运算符:“与”、“或”、“非”、“异或”

​ (1)“与"运算(AND)。“与"运算又称逻辑乘,可以用符号”·”、“×”、"∧"来表示。如有AB两个逻辑变量,每个逻辑变量只能有0和1两种取值,可能的取值情况有4种,在各种取值条件下“与运算规则如下表所示。当且仅当A、B两个变量同是取1时,它们的”与“运算结果才是1,其余情况结果均为0。

ABA∧B
000
010
100
111

例:11010111 AND 00001111=00000111

​ “与”运算的作用主要有以下两个:

​ ①取某数中指定位(mask中特定位置1,其他位为0,s=s∧mask)。例如,mask=1,一个数AND mask就是取这个二进制数的最末位,可以用来判断这个数的奇偶:如果结果为0,表示这个数的末位是0,是偶数;反之,结果为1,表示这个数的末位是1,为奇数。

​ ②清零特定位(mask中特定位置0,其他位为1,s=s∧mask)。

​ (2)”或“运算(OR)。”或“运算又称逻辑加,可以用符号”+“或”∨“表示,或运算的云撒UN规则如下所示,当且仅当A、B两个变量取值同时为0时,它们的”或“运算的结果才是0。

ABA∨B
000
011
101
111

例:11110010 OR 00000001=11110011

​ “或”运算通常用于二进制特定位上的无条件赋值,它的作用主要就是将源操作数某些位置1,其他位不变。例如,一个数OR 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数OR 1之后再减1就可以了,其实际意义就是把这个数强行变成最接近的偶数。

​ (3)“非”运算(NOT)。“非”运算又称为逻辑否,用符号“一”来表示。“非”运算仅需要一个参与运算的逻辑变量,其运算规则如下表所示,运算结果的各位取与逻辑变量相反的值。

A¬A
01
10
例:¬(11110010)=00001101

​ (4)“异或”运算(ExclusiveOR,XOR)。“异或”运算可以用符号“⊕“来表示。“异或”运算的运算规则如下表所示,当且仅当A、B两个变量取值相异时,它们的“异或”运算的结果才是1;否则A、B两个变量取值相同时,它们的“异或”运算的结果就为0。

ABA⊕B
000
011
101
110
例:11110010 XOR 00000001=11110011

​ “异或”运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(A XOR B)XOR B=A。“异或”运算的作用主要有以下两个。

​ ①使特定位的值取反(mask中特定位置1,其他位为0 s=s⊕mask)。
​ ②把一个数自清零,如A=A XOR A不管A是多少,最后A都等于零。

1.3.3、八进制(Octal)

​ 使用0、1、2、3、4、5、6、7八个符号作为数码,基数为8,相邻两位间逢八进一,位权为8^i,8为其基数,i为其数位序号

例:八进制数7654.3可表示为:

​ 7654.3=7×83+6×82+5×81+4×80+3×8-1

1.3.4、十六进制(Hexadecimal)

​ 使用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个符号作为数码,其中A、B、C、D、E、F分别对应10、11、12、13、14、15,基数为16,相邻两位间逢十六进一,位权为16^i,16为其基数,i为其数位序号

例:十六进制数B0F1.9可表示为:

​ B0F1.9=11×163+0×162+15×161+1×160+9×16-1

2.数制转换

2.1二进制数、八进制数、十六进制数转化为十进制数

​ 转换的方法就是按照位权展开表达式

例:

(1001.11)2=1×23+0×22+0×21+1×20+1×2-1+1×2-2

​ =8+0+0+1+0.5+0.25=(9.75)10

式子中的角码表示不同进制

(136)8=1×82+3×81+6×80=(94)10

(10F.8C)16=1×162+0×161+15×161+8×16-1+12×16-2

​ =256+0+15+0.5+0.046875=(271.546875)10

特殊情况:
全为1:11111转化为十进制:31 = 2^5-1
	  111111转化为十进制:63 = 2^6-1

2.2十进制数转换成二进制数

​ 将十进制数转换成等值的二进制数,需要对整数和小数部分分别进行转换。整数部分转换法是连续除2,直到商数为零,然后逆向取各个余数得到一串数位即为转换结果。(即用短初的方法)

例:

(56)10=(111000)2,计算过程略

​ 小数部分转换法是连续乘2,直到小数部分为零或已得到足够多个整数位(进入循环),正向取积的整数(后得的整数位为结果的低位)位组成一串数位即为转换结果。

例:

(0.6)10=(0.1001)2(因进入循环,保留四位小数)

*补:

​ 十进制转二进制还可以用凑数法

例:

(20)10=(16)10+(4)10=(10000)2+(100)2=(10100)2

将十进制数190转换为二进制数:

128 64 32 16 8 4 2 1                   八位位权
 1   0	1  1 1 1 1 0

用190从最高位开始依次与位权相减,若差大于等于零,则为1,差为负数则为0

190-128=62>0··········1

62-64=-2····················0

62-32=30>0···············0

········

2-2=0··························1

0-1=-1·························0

将十进制数250转化为二进制数:

128 64 32 16 8 4 2 1
 1   1  1  1 1 0 1 0

2.3十进制数转换为八进制数和十六进制数

​ 对整数部分“连除基数取余”,对小数部分“连乘基数取整”的转换方法可以推广到十进制数到任意进制数的转换,这时的基数要用十进制数表示。例如,用“除8逆向取余”和“乘8正向取整”的方法可以实现由十进制向八进制的转换;用“除16逆向取余”和“乘16正向取整”可实现由十进制向十六进制的转换。

2.4八进制数和十六进制数与二进制数制间的转换

​ 由于3位二进制数所能表示的也是8个状态,因此1位八进制数与3位二进制数之间有着一一对应的关系,转换就十分简单。即将八进制数转换成二进制数时,只需将每一位八进制数码用3位二进制数码代替即可。

例:

(363.06)8=(011 110 011.000 110)2

​ 为了便于阅读,这里在数字之间特意添加了空格与下画线。若要将二进制数转换成八进制数,只需从小数点开始,分别向左和向右每3位分成一组,用一位八进制数码代替即可。

例:

(11110010.00100101)2=(011 110 010 .001 001 010)2=(362.112)8

​ 注意:整数部分的最后一组如果不足3位,应该在前边用0补足3位再进行转换;小数部分最后一组如果不足3位,应在尾部用零补足3位再进行转换。

​ 与八进制数类似,一位十六进制数与4位二进制数之间也有着一一对应的关系。将十六进制数转换成二进制数时,只需将每一位十六进制数码用4位二进制数码代替即可。

例:

(6F.0C)16=(0110 1111.0000 1100)2=(110 1111.0000 11)2

​ 将二进制数转换成十六进制数时,只需从小数点开始,分别向左和向右每4位一组用一位十六进制数码代替即可。整数部分的最后一组如果不足4位,应该在前边用0补足4位再进行转换;小数部分的最后一组不足4位时要在尾部用0补足4位再进行转换。

例:

(10010110.101011)2=(1001 0110.1010 1100)2=(96.AC)16

2.5常用数制的对应关系

​ 通常,十进制数转换成八进制数、十六进制数时,可以先将其转换为二进制数,然后再根据进制数转换成需要的进制数,反之亦然。

​ 常用数制的数码和基数如下表。

十进制二进制八进制十六进制
基数102816
数码0~90、10~70~9、A、B、C、D、E、F

​ 四中常用数制之间的转换如下表所示.

十进制数二进制数八进制数十六进制数
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

5.二进制与IP地址

IP地址由32位二进制数组成,可分成四组

6.存储单位

1)位(bit)

​ 位是计算机存储设备的最小存储单位,简写为’b’,音译为’比特’,表示为二进制中的一位。

2)字节(Byte)

​ 字节是计算机中用于描述存储容量和传输容量的一种计量单位,即以字节为单位解释信息,简写为“B”,音译为“拜特”。8个二进制位编为一组称为一个字节,即1B=8b。通常人们所说的计算机内存大小2GB,即表示该计算机主存容量为230个字节,简写为2GB。也就是说,内存由230个存储单元构成,每个存储单元包含8位二进制信息。计算机内部,数据传递也是按照字节的倍数进行的。

3)字长

​ 一般而言,计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,而这组二进制数的位数就是“字长”。字长是计算机的一个重要技术指标,直接反映了一台计算机的计算精度。字长总是8的整数倍,通常PC的字长为16位(早期)、32位、64位,也就是常说的16位机、32位机、64位机。字长是CPU的主要技术指标之一。指的是CPU一次能并行处理的二进制位数,在其他指标相同时,字长越大计算机的处理数据的速度就越快。

们所说的计算机内存大小2GB,即表示该计算机主存容量为230个字节,简写为2GB。也就是说,内存由230个存储单元构成,每个存储单元包含8位二进制信息。计算机内部,数据传递也是按照字节的倍数进行的。

3)字长

​ 一般而言,计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,而这组二进制数的位数就是“字长”。字长是计算机的一个重要技术指标,直接反映了一台计算机的计算精度。字长总是8的整数倍,通常PC的字长为16位(早期)、32位、64位,也就是常说的16位机、32位机、64位机。字长是CPU的主要技术指标之一。指的是CPU一次能并行处理的二进制位数,在其他指标相同时,字长越大计算机的处理数据的速度就越快。

​ 通常,一个字节的每一位自右向左依次编号

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shadow丶S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值