c语言1 数的存储形式

c语言1 数的存储形式

ID:20513004

大小:3.28 MB

页数:40页

时间:2018-10-13

c语言1 数的存储形式_第1页
c语言1 数的存储形式_第2页
c语言1 数的存储形式_第3页
c语言1 数的存储形式_第4页
c语言1 数的存储形式_第5页
资源描述:

《c语言1 数的存储形式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言1、数在computer中的存在形式中山大学理工学院2011级微电子2+2伍裕平版权所有©Copyrightreserved由于程序就是数据的输入输出和对数据的一系列运算,所以学习编程之前,我们最好了解一下数据在电子计算机中的存储方式。本PPT内的知识在“数字电路”课程中还将遇到位、字节、(单)字、双字计算机使用二进制数据以二进制的形式储存、传送和运算二进制数的一个位(abinarydigit)叫做“位”(bit),如:0、18个连续的位称为1字节(byte):00001010 1byte=8bits两个连续字节的字节称为1个字(word)1wor

2、d=2bytes=16bits两个连续的字称为1个双字(doubleword,简称dword)1dword=2words=4bytes=32bits位、字节、(单)字、双字Windows7的计算器的“程序员”视图表示整数计算机中,一般可用1字节、2字节、4字节或8字节的二进制位存放整数计算机中可存放的自然数有范围的限制1字节只能表示256个数,一般可表示0到的无符号数,或到的有符号数。(为什么是到?学完后面的补码你就知道了。)如果运算时,结果超出了存储的范围,就会丢失一些数据并产生不正确的结果。这种现象称为“溢出(Overflow)”。溢出?表示整数的范

3、围数据结构无符号数范围有符号数范围1字节(1byte)1字(1word)1双字(1dword)1四字(1qword)(1quadword)表示整数的范围表示整数的范围表示整数的范围表示整数的范围表示整数的范围表示负数计算机不能直接存储一个负号,要表示一个负数,就要在数的最前面拿出1位作为符号位(为什么是最前面1位?学了下面的补码表示,你应该就能理解了),若符号位=0,则表示非负数;若符号位=1,则表示负数。表示负数为了运算方便,计算机用补码来表示负数。二进制数的补码=反码+1例如:0011的补码是1101(=1100+1)因为用补码表示法表示负数,直接进

4、行加减运算就可直接得到正确的结果。例如:70111+-3+1101410100注意:舍去超出的1为什么用补码你此时很可能对补码一头雾水。不过不着急,马上为你解释补码的来历。首先回到怎么表示负数的问题。最直观的方法就是把第一位作为符号位,其余的位表示数的绝对值。例如:+30011-31011为什么用补码这种方法虽然看起来简单,但比起补码表示法有两个缺点。一是0的表示方法不唯一:0000和1000这会造成存储空间的浪费。二是额外需要一个减法电路来做减法。而用补码表示法,减法可以容易地变成加法,只需先对减数求补(相当于取相反数)即可。为什么用补码怎么才能把减法

5、统一转换为加法,从而不需要减法电路呢?我们先从我们熟悉的十进制数看起。先看下面的等式:现在问:9876加上一个什么正数会等于5555?你也许要反问:9876加上一个正数怎么会等于5555呢?为什么用补码确实,在一般的数学里面,9876加上一个正数不会等于5555,但在计算机里,存储数据的位数是有限的(联想到“溢出”)。这里正要利用溢出。假如数据寄存器只能存4个十进制数位,那么只要找到一个正数,使9876加上这个数的和是15555(请思考为什么不选25555、35555……)。由于最高位的1会因为“溢出”而无效,结果会变成5555。为什么用补码现在你知道这

6、个正数就是。在此我想这样写:故可以用这个正数数码(code)表示负数。由于4个十进制数位最多能表示1万个数,可以规定这5000个数码表示它本身的非负数。相当于反码为什么用补码现在你知道这个正数就是。在此我想这样写:而这些数码按照上面的规则表示(represent)从的5000个负数。因为相当于反码不要把这些看成数(number),而应该看成编码(code)为什么用补码现在你知道这个正数就是。在此我想这样写:即当最高位时,它表示的数就是10000减去它本身的差的相反数。例如:表示相当于反码为什么用补码如果你还觉得不清楚,不要焦急,可以返回去再看一次。下面回

7、到二进制的世界。假设寄存器都是8位的,那么一个寄存器可能存的数有个。类似的,我们规定这128个数表示它本身,而表示减去本身的差的相反数。为什么用补码我们规定这128个数表示它本身,而表示减去本身的差的相反数。即:表示……表示为什么用补码按这样的规定(补码表示法),数据的最高位如果是0,则代表数本身(非负数);最高位如果是1,则代表负数(该位置能表示的数的数量(如256)减去数本身(如255)的差(如1)的相反数(如-1))这与前面“符号位+绝对值”表示法规定正数的最高位是0,负数的最高位是1不谋而合。而且还很好地解决了0有两种表示方法的问题,100…02

8、被用来表示最小的负数。为什么用补码补码表示法表示8位二进制数,用表示,用表示,我

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。