admin 管理员组文章数量: 1087139
2024年12月21日发(作者:衣服图片大全)
进制转换及数据类型
数据的表示方法:
1.
2.
3.
4.
二进制数:01
八进制数:01234567
十进制数:
十六进制数:ABCDEF
逢二进一:0+0=0,0+1=1,1+0=1,1+1=(1)0
逢八进一:1+5=6,5+6=13
逢十进一:1+5=6,5+6=11
逢十六进一:5+6=B,A+B=15
表1.0各种进制及其字符表示
进制
二进制
八进制
十进制
十六进制
字符
B/Y
Q/O
D/T
H
例子
1010B、1011B
1234O、311O
1234D、512D
1234H、1011H
备注
字符Y、O和T是
宏汇编MASM系统
所增加的进制表
示符。
表1.1 4位二进制数对应的十进制和十六进制数
二进制
0000
0001
0010
0011
0100
0101
0110
0111
十进制
0
1
2
3
4
5
6
7
十六进制
0
1
2
3
4
5
6
7
二进制
1000
1001
1010
1011
1100
1101
1110
1111
十进制
8
9
10
11
12
13
14
15
十六进制
8
9
A
B
C
D
E
F
进制的转换
非十进制数转换成十进制数:
方法:首先把非十进制数写成按权展开的多项式,然后按十进制数的计数规则求和。
例:
2A.8H=(?)D
10-1
解:
2A.8H=2*16+A*16+8*16
=32+10+0.5
=42.5D
例:
165.2O=(?)D
210-1
解:
165.2O=1*8+6*8+5*8+2*8
=64+48+5*0.25
=117.25D
例:
10101.11B=(?)D
解:
10101.11B=1*2+0*2+1*2+0*2+1*2+1*2+1*2
=16+0+4+0+1+0.5+0.25
43210-1-2
=21.75D
十进制数转换其它进制数:
1.整数转换
方法:整数转换,采用基数连除法。把十进制整数N转换成R进制数的步骤:
1) 将N除以R,记下所得的商和余数
2) 将上一步所得的商再除以R,记下所得商和余数
3) 重复做第2步直到商为0
4) 将各个余数转换成R进制的数码,并按照和运算过程相反的顺序把各个余数排列起
来,即为R进制数。
例:427D=(?)H
解:
16
427
余数
16
26
…… 11=B
16
1
…… 10=A
0
…… 1=1
427D=1ABH
例:427D=(?)O
解:
8 427
余数
8
53
…… 3
8
6
…… 5
0
…… 6
427D=653O
例:11D=(?)B
解:
2 11
余数
…… 1
2
5
2
2
…… 0
2
1
…… 1
11D=1011B
0
…… 1
2.纯小数转换
纯小数转换,采用基数连乘法。把十进制的纯小数M转换成R进制数的步骤:
1) 将M乘以R,记下整数部分
2) 将上一步乘积中的小数部分再乘以R,记下整数部分
3) 重复做第2步,直到小数部分为0或者满足精度要求为止
4) 将各步求得的整数转换成R进制的数码,并按照和运算过程相同的顺序排列起来,即为
所求的R进制数。
例:0.85D=(?)H
解:0.85*16=13.6 ……13=D
0.6*16=9.6 ……9=9
0.6*16=9.6 ……9=9
┋
0.85D=(0.D99…)D
例:0.35D=(?)O
0.35*8=2.8 ……2
0.8*8=6.4 ……6
0.4*8=3.2 ……3
0.2*8=1.6 ……1
┋
0.35D=(0.2631…)D
3.即有整数又有小数
若十进制数有整数也有小数,则整数和小数分别转换,再求其和即可。
例:11.375D=(?)B
解:
2 11
余数
…… 1
2
5
2
2
…… 0
2
1
…… 1
0
…… 1
11D=1011B
0.375*2=0.75 ……0
0.75*2=1.5 ……1
0.5*2=1.0 ……1
0.375D=0.011B
故:11.375D=1011.011B
二进制数转换成八进制数或十六进制数
方法:以二进制数的小数点为起点,分别向左、向右每三位(或四位)分一组。对于小数部
分,最低位一组不足三位(或四位)时,必须在有效位右边补0,使其足位。然后把每一组
二进制数转换成八进制(或十六进制)数,并保持原排序。对于整数部分,最高位一组不足
位时,可在有效位的左边补0,也可不补。
例1011011111.10011B=(?)O=(?)H
解:1 011 011 111 . 100 110
1 3 3 7 4 6
=1337.46O
10 1101 1111 . 1001 1000
2 D F 9 8
=2DF.98H
八进制数或十六进制数转换成二进制数
八进制(或十六进制)数转换成二进制数时,只要把八进制(或十六进制)数的每一位数码
分别转换成三位(或四位)的二进制数,并保持原排序即可。整数最高位一组左边的0,及
小数最低位一组右边的0可以省略。
例:36.24O=(?)B
3 6 . 2 4
011 110 . 010 100
=11110.0101B
例:3DB.46H=(?)B
3 D B . 4 6
0011 1101 1011 . 0100 0110
=1111011011.0100011B
基本的数据类型
1、字节(DB)define byte
一个字节有8位二进制组成,其最高位是第7位,最低位是第0位。在表示有符号数时,
最高位就是符号位。
00001001 = 9
10001011 = -11 有符号
= 139 无符号
通常情况下,存储器按字节编址,读写存储器的最小信息单位就是一个字节。
Var_byte db 10011101B
Var_bytes db 41H,42D,61H
2、字(DW)define word
由2个字节组成一个字,其最高位是第15位,最低位是第0位。高8位称为高字节,
低8位称为低字节。
00101010 00111100
Var_word dw 4512
3、双字(DD)define doubleword
用2个字(4个字节)来组成一个双字,其高16位称为高字,低16位称为低字。
双字有较大的数据表示范围,它通常是为了满足数据的表示范围而选用的数据类型,也可用
于存储远指针。
Var_dword dd 0F99728H 2H 0ABH
4、四字(DQ)
由4个字(8个字节)组成一个四字类型,它总共有64个二进制位,当然,也就有更大的
数据表示范围,但在汇编语言中很少使用该数据类型。
5、十字节(DT)
由10个字节组成一个十字节类型,它总共有80个二进制位。
6、字符串(DB)
字符串是由若干个字节组成的,字节数不定,通常每个字节存储一个字符。该数据形式
是汇编语言程序中经常使用的另一种数据形式。
Char_ABC db ‘A’,’B’,’C’
String_ABC db ‘ABC’
版权声明:本文标题:计算机数制及转化 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1734871378a1602462.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论