目录
真值和机器码
真值:采用正负号和二进制的绝对值所表示的数值。 机器码:可将正负号用一位数码0和1来表代替的数值,一般这种符号位放在数的最高位。 例:设机器字长为8位字长,数N1的真值为(+1001110B),数N2的真值为(-1001110),则与N1、N2对应的机器数为:
0 1 0 0 1 1 1 0B, 1 1 0 0 1 1 1 0B
无符号数
指整个机器字长的二进制位均为数值位,没有符号位,相当于数的绝对值。
有符号数
有符号数用“0”表示“正”号,用“1”表示“负”号,将符号位数值化,通常约定二进制的最高位为符号位,组成有符号数。 表示方法:原码、反码、补码和移码。
字符与字符串
字符编码ASCII码
在计算机中,用一个字节表示一个ASCII码,其最高一位(b7)填0,余下的7位可以给出128个编码,表示 128 个不同的字符和控制码。在进行奇偶校验时,也可以用最高位(b7)作为校验位。
汉字的表示和编码
汉字输入码
国标码
1981年颁发了《通用汉字字符集(基本集)及其交换码标准》GB2312-80方案,简称为国标码,有6763个汉字归结在一起称为汉字基本字符集。 根据使用的频度分为两级,第一级为3755个汉字,按拼音排序;第二级为3008个汉字,按部首排序。此外还有各种符号、数字、字母等628个。 总计为7445个汉字、字母。用2个字节来表示一个汉字。
区位码
将GB2312-80方案中的字符,按其位置划分为94个区,每个区94个字符,1~9区为图形字符区,包括符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号等,共682个。10~15区为空白区、16~55区为第一级汉字区(3755)、56~87区为第二汉字区(3008个)、88~94区为空白区,用4位H。 前两面二位为区号,后两位为区号内字符编码,例“京”字的区位码为1E09H 国标码(H)=区位码(H)+2020H
拼音码
拼音码是以汉语拼音为基础的输入方法。但汉字同音字太多,输入重码率很高,因此按拼音输入后还必须进行同音字选择,影响了输入速度。
五笔字型
字形编码是用汉字的形状来进行的编码。把汉字的笔划部件用字母或数字进行编码,按笔划的顺序依次输入,就能表示一个汉字。
汉字的内码
汉字内码是用于汉字信息的存储、交换检索等操作的机内代码,一般采用两个字节表示。为了与英文字符能够区别,汉字机内代码中两个字节的最高位均规定为“1”。
汉字字形码
字形信息的表示大体上有两类形式:一类是用活字或文字版的母体字形形式,另一类是点阵表示法、矢量表示法等形式,其中最基本的,也是大多数字形库采用的是以点阵的形式存储汉字字形编码的方法。
字符串的存放
可按先存储低位字节、后存储高位字节的顺序存放字符串的内容(又称小端模式),也可按先存储高位字节、后存储低位字节的顺序存放字符串的内容(又称大端模式)。
定点数表示法
计算机中的小数点并不是用某个数字来表示,而是用隐含的小数点的位置表示的。根据小数点的位置是否固定,又可分为定点表示和浮点表示。其中,定点表示形式又分为定点小数表示和定点整数表示。
将小数点固定在符号位X0之后,数值最高位X-1之前。格式如下:
其数据的表示范围随机器码表示方法的不同而不一样。
定点小数表示
定点整数
浮点数表示法
浮点数表示把字长分成阶码(表示指数)和尾数(表示数值)两部分,其格式有 第一种表示:
基数R隐含,一般为2,数的存储为X=DX2E 第二种表示:一般阶码采用补码或移码定点整数表示,尾数有补码表示
规格化浮点数
为了提高数据的表示精度,当尾数的值不为0时,其绝对值应大于等于0.5,即尾数域的最高有效位应为1,否则要以修改阶码同时左右移小数点的方法,使其变成这一要求的表示形式,这称为浮点数的规格化表示。
原码的规格化后:
正数:0.1X…X 的形式
负数:1.1X…X 的形式
补码的规格化后:
正数:0.1X…X 的形式
负数:1.0X…X 的形式
溢出问题
定点数判断溢出方法是对数值本身进行判断,而对浮点数是对规格化后的阶码进行判断。当一阶码大于机器的最大阶码时,称为上溢(不能进行运算);而小于最小阶码时,称为下溢(当0处理)