C程序设计基础

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 0111 1111 1111 1111 (32767)(32767)
无符号 32770+65533 = 65536+32767
有符号 -32766-3 = -32769 = -65536+32767
结论:设有两个整数a和b对216求余数(模)所得 结
果相同(即两数的二进制表示中低16位完全相同),
9
二进制数的定点和浮点表示
定点表示符法号—位—: 小数点位置是“固定的” 定点数可用0—于正表数 示整1数—负。数整数在机器中用补码表示。
对于符号i位nt a=8,b=-8;
数值位
真值
a=810=10002
原码 0 0000000 00001000
b=- 810=-10002
1 0000000 00001000
二进制与十进制小数互换 浮点数的二进制结构简介
❖ 由于小数点本身不能直接转化为二进制,在小数表示时,小数点 的位置是隐含的
❖ 如果小数点的位置是固定的,即整数部分和小数部分的位数是固 定的,称为定点小数
❖ 浮点数表示方法允许小数点的位置漂移,它需要额外的二进制位 以表示小数点的位置,这部分二进制位称为指数部分,而用于表 示有效数字的二进制位称为尾数部分
5
补码:正数的补码同原码,负数的补码为它的
反码加1
如:- 8的补码 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
- 0的补码 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0的补码 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
用补码表示数时,0的代码是唯一的;
无符号 有符号
1111 1111 1111 1110 (65534) (-2)
+ 0000 0000 0000 0011 1 0000 0000 0000 0001
(3) (3)7 (1) (1)
无符号 有符号
1000 0000 0000 0010 32766 )
(32770)(-
+ 1111 1111 1111 1101 (65533)(-3)
3
1.1 二进制基础(续)
❖ 原码、反码与补码
补码表示法
❖负数的补码表示是在反码基础上加1,而正数的反码表 示与原码相同
为什么计算机一般采用补码表示法
❖惟一性表示 ❖正负数混和相加 ❖带符号与无符号的混合相加 ❖加减法的统一
4
• 原码、反码和补码 原码:一个整数在内存中占二字节,规定高位 字节的最左边一位为最高位,表示数的符号(0 正1负),其余各位代表数本身的绝对值。 如:+8的原码 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 - 8的原码 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0的原码 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0的原码 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 反码:正数的反码与原码相同,负数的反码规定 符号位不动,其余各位对原码取反 如:- 8的反码 1 1 wk.baidu.com 1 1 1 1 1 1 1 1 1 0 1 1 1 - 0的反码 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
负数补码的补码是它的原码;
用补码表示数使加减法的统一 。
1111 1111 1111 1101 (-3)的补码
+ 0000 0000 0000 0001 (+1)的补码
1111 1111 1111 1110
(-2)的补码
6
• 模216原则
假定用16位二进制表示一个整数,则数值范围为:
无符号数:0000000000000000~
那么计算机就认为这两数是同一个数,计算机的这个
特征称为取模原则或模216原则,即任何一个数加上

8
1.1 二进制基础(续)
❖ 模216原则
设有两个整数a和b,若存在一个整数n,使得满 足 a = b + 216*n,那么这两数的二进制表示中低 16位将完全相同,计算机因此认为a与b是同一个 数。也可以这么说,如果a与b对216求余数(模) 所得结果相同,那么计算机就认为这两数是同一 个数,计算机的这个特征称为取模原则或模216原 则,即任何一个数加上或减去65536所得结果相 同。
1.1 二进制基础
❖ 二进制则是逢二进一,只使用0和1这两个数 码。
❖ 为什么采用二进制
成本更低 运算更简单 硬件上更容易实现
1
1.1 二进制基础(续)
❖ 二进制、十六进制和八进制
❖ 10进制数转换成2、8、16进制数 整数部分:除基取余法 小数部分:乘基取整法
❖ 2、8、16进制数转换成10进制数 按权相加法
阶码和数符:
数符 尾数 阶符 阶码 0—正数 1—负数
(110.011)B=1.10011×2+10=11001.1 × 2-10 =0.110011 × 2+11
0 110011 0 11
即: N=数符×尾数×2阶符×阶码
尾数的位数决定数的精度 阶码的位数决定数的范围
1.1 二进制基础(续)
❖ 浮点小数的二进制表示
补码 0 0000000 00001000 1 1111111 111110010110
正数的补码=正数的原码 负数的原码和补码按以下规则相互转换:
符号位不变,数值位各位取反,末位加1。
10
二进制数的定点和浮点表示
浮点表示法——小数点位置是“浮动的”。 在计算机中一个浮点数由两部分组成:阶码和尾数,阶 码是指数,尾数是纯小数。浮点表示法可用于表示带小 数的数。
❖ 2进制数转换成16进制数 四位一组用16进制数代替
❖ 16进制数转换成2进制数 每位用四位2进制数代替
2
1.1 二进制基础(续)
❖ 原码、反码与补码
原码表示法
❖除符号位以外,其他二进制位为数值的绝对值,这种 方案称为“原码”表示法
反码表示法
❖除符号位以外,负数的反码表示是在原码基础上其他 二进制位取反,而正数的反码表示与原码相同
1111111111111111
0~ 216 -1 即 0~65535
有符号数:1000000000000000~
0111111111111111
-215 ~ 215 -1 即 -32768~32767
如果计算机进行运算时运算结果超出这16位范围,
那么将只取低16位作为结果,例如:
65534 + 3 = 65536+1
相关文档
最新文档