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’


本文标签: 整数 字节 进制