数据在计算机中的编码表示
二进制数的编码表示
需要解决的问题:负数如何表示?
最容易想到的方案:
0:表示“+”号;
1:表示“-”号。
原码
"符号──绝对值"表示的编码
例如:
原码的缺点:
零的表示不惟一
进行四则运算时,符号位须单独处理,运算规则复杂。
补码
符号位可作为数值参加运算;
减法运算可转换为加法运算;
0的表示唯一。
补码的原理
模数:
n位二进制小数的模数为 2。
补数:
一个数减去另一个数(加一个负数),等于第一个数加第二个数的补数,例(时钟指针): 8+(-2)=8+10 ( mod 12 )=6;
一个二进制负数可用其模数与真值做加法 (模减去该数的绝对值) 求得其补码,例(时钟指针):-2+12=10。
补码的计算
借助于“反码”作为中间码;
负数的反码与原码有如下关系:
符号位不变(仍用1表示),其余各位取反(0变1,1变0),例如:
正数的反码与原码表示相同,正数的补码与原码相同;
反码只是求补码时的中间码;
负数的补码由该数反码的末位加 1 求得。
对补码再求补即得到原码。
补码的优点:
0的表示唯一;
符号位可作为数值参加运算;
补码运算的结果仍为补码。
实数的浮点表示
计算机中通常采用浮点方式表示小数;
实数 N 用浮点形式可表示为:
E:2的幂,N:阶码;
M:N的尾数。
字符在计算机中的表示
字符在计算机中是通过编码表示的;
例如:
ASCII码是一种常用的西文字符编码:用7位二进制数表示一个字符,
《GB 18030-2005 信息技术 中文编码字符集》是中国国家标准。