2.1.2 机内的数值和字符表示
机内的数值表示及编码就是在计算机内表示二进制数的方法,这个数称做机器数。不考虑正负的机器数称为无符号数。考虑正负的机器数称为有符号数。
为了在计算机中正确地表示有符号数,通常规定最高位为符号位,并用 0 表示正,用 1表示负,余下各位表示数值。例如:若位长为8,数值125的原码表示法为01111101;因为125转化成二进制数为1111101,占7位,最高位是符号位,正数用0表示,如图2.1所示。
图2.1 125的原码表示法(8位)
同理,数值-125的原码表示则应为11111101,因为最高位是符号位,负数用1表示。
计算机除了用于数值计算之外,还要进行大量的文字信息处理,也就是要对各种文字信息的符号进行表达。其中,ASCII码是一种最常用的符号表示方法。
ASCII(American Standard Code for Information Interchange)码是美国标准信息交换代码的简称,用于给西文字符编码。这种编码由7位二进制数组合而成,可以表示128个字符,目前在国际上广泛流行。
ASCII码是7位二进制编码,而计算机的基本存储单位是字节(byte),一个字节包含8个二进制位(bit)。因此,ASCII 码的机内码要在最高位补一个 0。后来,IBM 公司把ASCII码的位数增加了一位,用8位二进制数构成一个字符编码,共有256个符号。扩展后的 ASCII 码除了原先的 128 个字符之外,又增加了一些常用的科学符号和表格线条。附表B.1和表B.2分别列出了ASCII码字符集的基本字符和扩展字符。