§1.2.2 各种进制数的转换
1.十进制<-->二进制
把二进制数转换为十进制数,按定义直接计算。
2.十进制<—>十六进制
十进制整数转换为十六进制,采用除16取余法;十进制纯小数转换为十六进制小数,采用乘16取整法。
把十六进制数转换为十进制数,按定义直接计算。
3.二进制〈—〉十六进制
十进制
|
二进制
|
十六进
|
|
十进制
|
二进制
|
十六进制
|
0
|
0000B
|
0H
|
8
|
1000B
|
8H
|
|
1
|
0001B
|
01H
|
9
|
1001B
|
9H
|
|
2
|
0010B
|
02H
|
10
|
1010B
|
0AH
|
|
3
|
0011B
|
03H
|
11
|
1011B
|
0BH
|
|
4
|
0100B
|
04H
|
12
|
1100B
|
0CH
|
|
5
|
0101B
|
05H
|
13
|
1101B
|
0DH
|
|
6
|
0110B
|
06H
|
14
|
1110B
|
0EH
|
|
7
|
0111B
|
07H
|
15
|
1111B
|
0FH
|
二进制数转换为十六进制数,从小数点开始,向左右两边,把二进制数分为每四位一组(不足四位以0补足),写出每组对应的十六进制数。
十六进制转换为二进制,把十六进制数的各位数字用四位二进制替换即可。
§1.2.3 带符号数的编码表示方法
一个带符号的数有"符号"和"数值"两部分。在计算机中,把数的符号也用编码表示,通常,将一个二进制数码的最高位作为符号位,其余位表示数值。
S 数值位 符号位S=0表示正数,S=1表示负数。这种符号被数值化了的二进制数称为机器数(数在机器中的表达),而它的数值
称为该机器数的真值。
"数值位"部分可以有"原码"、"反码"、"补码"三种表示方法,计算机中一般用补码表示。
1、 原码表示
在计算机中,把数的符号也用数码表示,通常做法是将一个二进制数码的最高位作为符号位,规定0表示正号,1表示负号,剩余位作为数值部分,这种表示法称为原码表示法。例
2、 反码表示
正数的反码与原码相同;负数的反码,在原码的基础上,符号位不变,数值位按位取反。
3、 补码表示
正数的补码与原码相同;负数的反码,在反码的基础上,最低位加1。
4、 补码的特点
(1)[+0]补=[-0]补= 00000000B,即0的编码方式只有一种(原码和反码中,0的编码方式有两中)。
(2) 两数相减,可以转换为两数相加运算。
5、 二进制数的位数在计算机中,通常以8、16、32、64位二进制表示一个数。
11111111B和1111111111111111B的真值相同(-1),仅仅是表达的二进制位数不同。在运算过程中,有时需要把一个数的8位表
达扩展为16位表达,或者把16位扩展为32位,扩展的方法是符号扩展。
注意:在计算机中,一个数的位数总是指其二进制位数。
§1.2.4 实数的编码表示方法
实数有两种表示方法:"定点表示法"和"浮点表示法"。在微机中,一般使用浮点表示法,因此,实数运算又称为浮点运算。
1、 定点表示法
小数点在机器数中的位置固定不变,这样的数称为定点数。 原则上讲,小数点的位置可以任意指定,例如,在16位机器数中,用高10位表示整数,用低6位表示尾数,小数点固定在第六位和第七位之间(未表示出来)。但为了方便,总是把小数点规定在数的最前面或数的最后面,即把所有数均化为纯小数或纯整数来进行运算。
2、 浮点表示法
浮点表示法,就是小数点在数中的位置是浮动的,这样的数称为浮点数。
在浮点表示时,计算机把任何一个二进制数分成阶码和尾数两部分。
因为二进制数可写为如下一般形式:
N=±S.2±J
其中,J称为阶码(整数),2为阶码的底,S为尾数(纯小数)。
在这种表示方法中,二进制小数点的位置随阶码移动,因此称为"浮点表示"。
设一台机器中,以16位机器数(bit15~bit0)表示实数,阶符、数符各占一位,阶码占5位,尾数占9位,该机器的浮点数格式:
注意:在微机中,使用32、64、80位来表示一个实数,且编码方法与上述原理不同。
R=±1.M×2N,1为整数,M为尾数,N为指数 以32位实数为例。S(31)指数N(30~23),8位尾数M(BIT22~BIT0),23位
表示的实数值R=±1.M×2(N-127)
整数部分1是固定的,未在编码中表示出来。
指数部分减去一个值,是为了避免出现负值。