欢迎来到天天文库
浏览记录
ID:50893902
大小:31.87 KB
页数:2页
时间:2020-03-15
《黑马程序员C语言教程C基础技术.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、变量变量声明定义声明不分配存储空间,定义分配存储空间,广义上讲定义是声明的一种特殊形式。不同类型常量的表示10整型10l10L长整型10ll10LL长长整型10ul10UL无符号长整型10ull10ULL无符号长长整型010八进制80x10十六进制16整型变量的取值范围在计算机中数是以补码的形式存在的,纠其原因是为了方便进行运算。正数的补码和原码相同,负数的补码等于其绝对值的原码取反后加1(符号位保持不变)。下面就来说明为什么用补码方便运算:以8位2进制数来举例说明,对于8位有符号2进制数,最高位为符号位,设N为负数,则
2、N
3、为正数且
4、N
5、>=1,N的补码为N的补码=2^7+2^
6、7-1-
7、N
8、+1=2^7+2^7-
9、N
10、,设M为正数,在计算机中N+M实际上等于N的补码+M即2^7+2^7-
11、N
12、+M=2^7+2^7+(M-
13、N
14、),1)如果M>
15、N
16、,那么最终运算结果为M-
17、N
18、,符号位从1变为0,这是因为N的符号位等于1,可表示为10000000=2^7,当再加上2^7后,将变为0,即10000000+10000000=100000000,1被舍弃了。2)如果M<
19、N
20、,那么最终运算结果为2^7+2^7-(
21、N
22、-M),即等于-(
23、N
24、-M)的补码,也就是-(
25、N
26、-M)了。3)如果M=
27、N
28、,那么最终运算结果为0,溢出位被舍弃了,这与M>
29、N
30、的情况
31、类似。当M也为负数的时候,虽然符号位相加,最高位变为0,但由于非符号位相加也存在溢出现象,符号位又变回了1,即负数加上负数还是负数,这是合理的。用公式表示如下,N的补码+M的补码=2^7+2^7-
32、N
33、+2^7+2^7-
34、M
35、=2^7+2^7-(
36、N
37、+
38、M
39、),即等于-(
40、N
41、+
42、M
43、)的补码。当然正数与正数相加就很好理解了。通过以上分析,我们可知在计算机中使用补码进行运算,是很方便的,即使得计算机可以像普通的四则运算一样进行加减乘除等运算。
此文档下载收益归作者所有