汇编语言不能移植,不同计算机硬件指令集不同,不能运行。
正数:寄存器中数据要从低地址到高地址读。值的高位存在低地址。
一、数与字
1、数值型数据
用途:计算、比较。
2、非数值型数据
用途:输入输出、存储、比较。
3、数有各种类型和范围,字只有一种类型——char
bool型属于数值型。
4、数与字最终都是0,1的序列。
5、数和字的编码不同。
数根据不同数据类型分类,分为:
无符号数、有符号数、浮点数
字有不同的编码:
ascII、GB2312、unicode
6、数和字的转换
从输入输出看:字通过scanf变为数,数通过printf变为字。
数→itoa→字;字→atoi→数
二、数的单位:b、B、W
b | bit | 一个二进制位 |
---|---|---|
B | byte | 一个字节,八个二进制位 |
W | word | 一个字,cpu中通用寄存器所占用的二进制位数,为16位 |
DWord | DWord | 32位,两个字 |
应用
b用于速率 B表示存储 W用于表示cpu或计算机的位数
三、进制及变换
1、进制
逢n进一 基:2,8,10,16 权(位):基
2、通用表示
3、二进制特点
- 只有0,1两个数,容易用硬件实现
- 容易实现逻辑运算
- 容易实现加法运算
- 移位运算(乘以2左移;除以2右移)
4、2,8,16进制的转换
5C7AH = 0101 1100 0111 1010(B) =056172(O)(二进制从右向左三个三个划)
5、其他位转十进制
(按权转换)$01100100B=2^6+2^5+2^2=64+32+4=100$(基值反复相乘)$=(((((02+1)2+1)2+0)2+0)2+1)2+0)*2+0)$
十进制转其他进制
整数 除以基取余直到为0(结果的顺序从低位到高位) 小数 乘基取整直到满足精度
四、数的编码
1、机器数与真值
- 机器数是连同符号位一起表示的数值;
- 最高位为1是负数,0为正数。
- 正数的编码同无符号数:机器数等于真值。
- 负数的编码采用补码形式(正数的补码)(将减法转换成加法计算)
- 编译器完成数的进制变换及编码生成
- BCD码:8421码NBCD
- 移码与浮点编码(IEEE754)
减法计算:$-x=+2^8-x$ 原码:符号位为1,后面是真值的二进制。 反码:符号位1,在原码的基础上各位取反(正数反码与其本身相同)。 补码:反码+1,(正数原码与补码相同). -1 = 10000001 = 11111110B = 11111111B
真值 | 机器码 |
---|---|
-1 | 1111 1111B |
+100 | 01100100B |