追学网

1.8 数据的编码表示

UPDATE:2015/10/16 | 分类:C++语言视频教程


数据在计算机中的编码表示

【二进制数的编码表示】

l  需要解决的问题:负数如何表示?
l  最容易想到的方案:
0:表示“+”号;
1:表示“-”号。
l  原码
n  "符号──绝对值"表示的编码
例如:
1.8 数据的编码表示
n  原码的缺点:
u  零的表示不惟一
[+0] =000...0
[-0] =100...0
u  进行四则运算时,符号位须单独处理,运算规则复杂。
l  补码
n  符号位可作为数值参加运算;
n  减法运算可转换为加法运算;
n  0的表示唯一。
l  补码的原理
n  模数:
n位二进制整数的模数为 2n
n位二进制小数的模数为 2。
n  补数:
u  一个数减去另一个数(加一个负数),等于第一个数加第二个数的补数,例(时钟指针): 8+(-2)=8+10 ( mod  12 )=6;
u  一个二进制负数可用其模数与真值做加法 (模减去该数的绝对值) 求得其补码,例(时钟指针):-2+12=10。
l  补码的计算
n  借助于“反码”作为中间码;
n  负数的反码与原码有如下关系:
符号位不变(仍用1表示),其余各位取反(0变1,1变0),例如:
X=-1100110    [X] =1 1100110    [X] =1 0011001
n  正数的反码与原码表示相同,正数的补码与原码相同;
n  反码只是求补码时的中间码;
n  负数的补码由该数反码的末位加 1 求得。
n  对补码再求补即得到原码。
l  补码的优点:
n  0的表示唯一;
n  符号位可作为数值参加运算;
n  补码运算的结果仍为补码。

【实数的浮点表示】

l  计算机中通常采用浮点方式表示小数;
l  实数 N 用浮点形式可表示为: N=M×2E
E:2的幂,N:阶码;
M:N的尾数。

【字符在计算机中的表示】

l  字符在计算机中是通过编码表示的;
l  例如:
ASCII码是一种常用的西文字符编码:用7位二进制数表示一个字符,最多可以表示27=128个字符;
l  《GB 18030-2005 信息技术 中文编码字符集》是中国国家标准。
学习网

世界看中国 娱乐情感文化观点视频