一、数据格式
1、进制装换
十进制转二进制:整数部分除2取余至余数为0,小数部分乘2取整至小数为0
2、数值数据表示格式
(1)、定点数表示方法
小数点固定
分为有符号数和无符号数,对于有符号数来说,最高位为符号位,0正1负
目前计算机中采用定点数表示纯整数,定点运算又被称为整数运算
(2)、浮点数的表示方法
N=ReM
e:指数,用整数表示,给出小数点位置,决定浮点数范围
M:尾数,用定点小数表示,给出有效数字的位数,决定浮点数的精度
R:基,对于二进制来说为2
IEEE754标准
规定了浮点数的表示格式、运算规则
尾数用原码,指数用移码
基数R=2固定,不表示
IEEE754中32位单精度浮点数标准
S是符号位,在最高位(31),0正1负
E是阶码,占8位(30~23),采用移码表示,E=e+127
M是尾数,占23位(22~0),在低位部分,采用原码纯小数表示
规格化:对浮点数表示作出明确规定,使同一个浮点数的表示是惟一的
规格化数形式1.xxxxxx,其中1属于隐藏位,实际只存储小数点后的数值
规格化表示:
当尾数不为0时
尾数左移一位,阶码减一
尾数右移一位,阶码加一
**一个规格化数的真值x=(-1)S(1.M)2E-127*
64位双精度浮点数
S:1位,63
E:11位,62~52,E=e+1023
M:52位,51~0
x=(-1)S*(1.M)*2E-1023
二、十进制数串的表示方法
二-十进制编码(BCD码)
每1位十进制数由4位二进制数表示,8421码,余三码,格雷码等,各种码制的区别在于选用哪十种状态
有权码:名称表示每一位对应的位权,如8421码
无权码:每一位没有位权,不能按照加权求和得到对应的十进制数
余三码:8421码+0011
格雷码:相邻的两个代码,只有一个二进制位不同,其余三个二进制位相同
有利于保证代码变换的连续性,在模数转换和产生节拍电位时特别有用
三、数的机器码表示
一般书写的数称为真值,计算机中这些编码表示的数称为机器数
4种表示方法:原码、补码、反码、移码
1、原码:
定点整数的原码形式为Xn···X1X0
特点:表示简单,便于同真值转换,乘除简单,减法麻烦
[+0]原=00000000 [-0]原=10000000
2、补码
正数的补码是其本身,负数的补码是原数加上模,对于Xn···X1X0,以2n+1为模,即,X<0时,[X]补=X+2n+1
减法简单:[X]补-[Y]补=[X]补+[-Y]补
证明:
Y为n位正数时:[-Y]补=-Y+2n+1
[X]补+[-Y]补=[X]补+(-Y+2n+1)
=[X]补-[Y]补+2n+1 由于2n+1 溢出
=[X]补-[Y]补
Y为n位负数时:[Y]补=Y+2n+1
[X]补+[-Y]补=[X]补+(-Y)
=[X]补-[Y]补
即:[X]补-[Y]补=[X]补+[-Y]补
[+0]补=[-0]补=00000000
3、反码
正数的反码与原码相同,负数的反码符号位不变,数值位按位取反
[+0]反=00000000 [-0]反=10000000
负整数补码:[X]补=[X]反+1
证明:
设X为n位,X<0时:[X]补-1=X+2n+1-1
=1···1-(-X) 一共是n个1,由于是二进制表示
=[X]反
即:负整数补码:[X]补=[X]反+1
4、移码
对于n位整数X,[X]移=X+2n
X>0时,其移码等于将原码第一位改为1
三、字符和字符串的表示方法
ASCII:单字节编码系统,最高位为0,低七位可以表示128个字符
四、汉字的表示方法
1、汉字的输入编码:数字编码、字音编码、字形编码、音形编码
2、汉字内码
汉字的机内代码,一般采用双字节表示
Unicode码
容纳全世界所有语言中任意一种符号
UCS-2,每个字符占用2字节
UCS-4,每个字符占用4字节
为了解决Unicode 传输、存储问题,对Unicode进行二次编码
UTF-8,可变长格式,英文1字节,中文3字节
UTF-16,拿2个字节来表示字符
3、汉字输出码
(1)、点阵字形
每个字有mn个像素的位图表示,成mn点阵
复原字形快,但缩放后字形质量难以保证
(2)、矢量字形
通过数学方程来描述
字体可以无限放大而不产生变形
五、校验码
(1)、数据在存取和传输的过程中可能会发生错误
(2)、为减少和避免错误
提高硬件本身可靠性
对数据采用专门的逻辑电路进行编码,以检测错误,甚至校正错误
(3)、方法
在每个字添加一些校验位
常用检测或纠错技术
奇偶校验
CRC循环冗余校验
Hammming码,ECC校验
(4)、奇偶校验码
若干有效位加上一位校验位组成校验码,分为奇校验和偶校验