机器数(computer word)
通常将数值数据在计算机内部编码表示的数称为机器数。机器数中只有0和1两种符号。
真值(natural number)
机器数真正的值(即原来带有正负号的数)称为机器数的真值。
数值数据(numerical data)
数值数据是指有确定的值的数据,在数轴上能找到其对应的点,可以比较其大小。确定一个数值数据的值有三个要素:进位记数制、定/浮点表示和数的编码表示。也就是说,给定一个数字序列,如果不说明这个数字序列是几进制数、小数点的位置在哪里、采用什么编码方式,那么这个数字序列的值是无法确定的。
非数值数据(non-numerical data)
非数值数据是指在数轴上没有确定的值的数据,逻辑数据、西文字符、汉字字符等都是非数值数据。
基数(radix,base)
进位记数制的“底数”或“基”。例如,二进制数的基数是“2”,十进制数的基数为“10”,十六进制的基数为“16”。
无符号整数(unsigned integer)
当一个编码的所有二进制位都用来表示数值时,该编码表示的就是无符号整数,也称为无符号数,可以把它看成是正整数。常用于表示指针和地址等。
带符号整数(signed integer)
在计算机内部对正、负号进行编码的整数,也称为有符号整数。通常用补码表示。
定点数(fixed-point number)
定点数是计算机中小数点固定在最左边或最右边的数,有定点整数和定点小数两种。定点整数的小数点总是约定在数的最右边,主要用来表示现实世界中的整数和浮点数中的指数。定点小数的小数点总是约定在数的最左边,主要用来表示浮点数中的尾数。
定点数的编码方式有原码、反码、补码和移码。浮点数的尾数一般用原码小数来表示;浮点数的指数一般用移码来表示;而反码很少被使用,只用在某些特殊场合。
浮点数(floating-point number)
浮点数是计算机中可以指定小数点在不同位置的数。任意一个浮点数 F 可写成 F = M ×2 E 的形式。这样,一个浮点数就可用两个定点数表示, M 称为浮点数的尾数(mantissa, significand),用一个定点小数来表示; E 称为浮点数的指数或阶(exponent),用一个定点整数来表示。
原码(signed magnitude)
由符号位直接跟数值位构成,也称“符号-数值”表示法。它的编码规则是:正号“+”用符号位“0”表示,负号“-”用符号位“1”表示,数值部分不变。这种编码比较简单,但计算机处理起来不方便,20世纪50年代以后,就不用它来表示整数了。现代计算机中,一般用它来表示浮点数的尾数,如IEEE 754标准。
反码(one ' s complement)
一种对定点整数或定点小数进行二进制编码的编码方案。由于计算机处理反码没有补码方便,反码已很少被使用了。
补码(two ' s complement)
补码编码规则是:正号“+”用符号位“0”表示,负号“-”用符号位“1”表示,正数的数值部分不变,负数的数值部分是“各位取反,末位加1”。这种编码较原码复杂,但由于它是一种模运算系统,计算机处理很方便。常用补码表示带符号整数。
变形补码(four ' s complement)
变形补码是一种双符号位补码,又称为“模4-补码”。双符号位可以用来检测定点整数是否发生溢出,左符号位为真正的符号位,右符号位用来判断是否溢出。采用“变形补码”进行溢出检测时的判断规则为:“当结果的两个符号位不同时,发生溢出”。双符号位通常用于保存运算过程中进到高位的数值部分。
移码(excess notation,biased notation)
移码编码规则是:将真值加上一个偏置常数(bias)。在浮点数的加减运算中,要进行对阶操作,需要比较两个阶的大小。用移码表示阶后,所有数的阶都相当于一个正整数,比较大小时,只要从高位到低位按顺序比较即可,因而,移码主要用来表示浮点数的阶,可以简化对阶操作。
单精度浮点数(single precision floating point number)
IEEE 754标准规定的32位浮点数格式表示的浮点数。阶码用8位移码表示,偏置常数为127,尾数用原码表示,规格化浮点数的最高位“1”隐含不表示,显式表示的尾数有23位,所以一共有24位尾数。
双精度浮点数(double precision floating point number)
IEEE 754标准规定的64位浮点数格式表示的浮点数。阶码用11位移码表示,偏置常数为1023,尾数用原码表示,规格化浮点数的最高位“1”隐含不表示,显式表示的尾数有52位,所以一共有53位尾数。
机器零(machine“0”)
用一种专门的位序列表示“机器零”。例如,IEEE 754单精度浮点数中,用“0000 0000H”表示“+0”,用“8000 0000H”表示“-0”。当运算结果出现阶码过小时,计算机将该数近似表示为“机器零”。
BCD码(Binary Coded Decimal,BCD)
十进制数用二进制编码的形式表示称为BCD码。
逻辑数据(logic data)
逻辑数据用来表示命题的“真”和“假”,分别用“1”和“0”来表示。进行逻辑运算时,按位进行。
ASCII(American Standard Code for Information Interchange)码
目前计算机中使用最广泛的西文字符集及其编码,即美国标准信息交换码,简称ASCII码。
汉字输入码(Chinese character input code)
对每个汉字用一个标准键盘上按键的组合来表示的编码方式。一般分为数字编码(如区位码)、字音编码(如微软拼音、全拼)、字形编码(如五笔字型)和形音编码。
汉字内码(Chinese character code)
用于汉字在计算机内部进行存储、查找、传输和处理而采用的编码方式,通常用2~4个字节表示一个汉字内码。
机器字长(machine word length)
一个二进制位(bit,比特)是计算机内部信息表示的最小单位。机器字长指的是特定计算机中CPU用于定点整数运算的数据通路的宽度,通常也就是CPU内定点数运算器和通用寄存器的位数。
编址单位(addressing unit)
对主存单元编号时,具有相同编号的二进制位数,主存单元的编号称为地址。通常的编址单位为8,即字节。按字节编址时,编址单位为字节;按字编址时,编址单位为字。
字地址(word address)
按字节编址时,一个字可能占用几个内存单元,字地址就是这几个连续内存单元地址中的最小值。
最高有效位(Most Significant Bit,MSB)
一个二进制数中的最高位,例如二进制数1000中的“1”。
最低有效位(Least Significant Bit,LSB)
一个二进制数中的最低位,例如二进制数1110中的“0”。
最高有效字节(Most Significant Byte,MSB)
一个二进制数中的最高字节,例如二进制数1111 1111 0000 0000 1111 0000 中的1111 1111。
最低有效字节(Least Significant Byte,LSB)
一个二进制数中的最低字节,例如二进制数1111 1111 0000 0000 1111 0000 中的1111 0000。
大端方式(big endian)
采用字节编址方式时,一个多字节数据(如int、float等类型数据)将占用多个主存单元。大端方式下,字地址是MSB所在单元的地址。
小端方式(little endian)
采用字节编址方式时,一个多字节数据(如int、float等类型数据)将占用多个主存单元。小端方式下,字地址是LSB所在单元的地址。
边界对齐(boundary alignment)
要求数据的地址是相应的边界地址。例如,按字节编址时,长度为4字节的数据的地址应该是4的倍数,即最末两位总是00,长度为2字节的数据的地址总是2的倍数。