计算机与数学之数据范围

废话不说,先来一段程序,诸位童鞋们猜猜这段程序的输出:

#include<stdio.h>
#define MAX 255

int main(int argc, char **argv) {
unsigned char i, a[MAX];
for(i = 0; i <= MAX; i++) {
a[i] = i;
}
for(i = 0; i <= MAX; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}

童鞋们可以在你们的计算机上跑一下上面代码,有惊喜奥

还在等待输出吗?不用等了,永远不会有输出了,因为这是个死循环。话说哪来的死循环呢?这便要谈一谈计算机整型数据的表示范围和数据溢出啦

看到这里,我们要思考:对于unsigned char i = 255;i + 1 = ?

计算机中的加减乘除并不像我们平常数学中那样,因为在数学中你已经假设了数据范围为无穷大。但在计算机中,资源是有限的,为了充分利用资源,我们规定了占有不同位的数据类型。如unsigned char,它和char一样是8位,区别是首位不用做符号位,于是有:0000 0000 - 1111 1111 ,二进制转化为十进制就是0 - 255.现在再讨论上述程序:

1111 1111

+                 1

--------------------

1 0000 0000

上面我们说了,对于各种数据类型,用于表示表示的位数是固定的,那么结果中的首位的1便会由于没地方存储而舍弃,于是你惊奇的发现 255 + 1 = 0

其实再思考上面的计算过程溢出位,我们发现按权值计算溢出位的表示大小相当于:溢出位*2^8.例如上面舍弃的1表示的实际大小为 1*2^8 = 256,

分析上面舍弃的行为,你会发现数学上有相对应的操作,它就是取模

好了,经过上面的分析,你应该会发现什么,总结一下无符号整数的计算,再类推到有符号整数

对于溢出问题,提出如下问题以供思考:

1.有符号数和无符号数之间的转化(不同数据类型之间转化)

2.无符号加法,无符号乘法

3.有符号加法,有符号乘法

时间: 2024-10-15 04:37:30

计算机与数学之数据范围的相关文章

计算机中的各色数据形式

注:下面都不是严格的分类,也不是严格的定义,仅仅为了简单科普一些直观的分类,好让你知道矩阵长什么样. 独立的个体: 数字 常见的整数和小数,如9.3.1415926.计算机存储他们的时候都是使用一定数量的二进制数表示比如32位计算机使用32位表示3.1415926是,或者整数9. 和字符串 矩阵 单幅图像.视频与可视化 有关系的组合: list dict 数据库 结构化的数据与非结构化的数据: 无固定类型的组合

计算机与数学

计算机科学和数学的关系有点奇怪.二三十年以前,计算机科学基本上还是数学的一个分支.而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了.但不管怎么样,这个孩子身上始终流着母亲的血液.这血液是the mathematical underpinning of computer science(计算机科学的数学基础),-- 也就是理论计算机科学.现代计算机科学和数学的另一个交叉是计算数学/数值分析/科学计算,传统上不包含在理论计算

数学建模 数据包络分析(DEA) Lingo实现

model: sets: dmu/1..7/:lambda; !决策单元; inw/1..4/:s1; !投入变量集; outw/1..4/:s2; !产出变量集; inv(inw, dmu):x; !投入数据; outv(outw, dmu):y; !产出数据; endsets data: n=?; !所评价的决策单元; x= 349.3313 0.63114 5.59091 6.30942 3.84352 0.50472 37.86518 !AZ; 1620.7 1.2335 17.1930

大数据vs计算机

大数据有两个方向,一个是偏计算机的,另一个是偏经济的.你学过Java,所以你可以偏将计算机 基础1. 读书<Introduction to Data Mining>,这本书很浅显易懂,没有复杂高深的公式,很合适入门的人.另外可以用这本书做参考<Data Mining : Concepts and Techniques>.第二本比较厚,也多了一些数据仓库方面的知识.如果对算法比较喜欢,可以再阅读<Introduction to Machine Learning>.当然,还

利用“爬虫”抓视频 法院审结全国首例计算机抓取数据案

近期,海淀法院审结了一起利用"爬虫"技术侵入计算机信息系统抓取数据的刑事案件.该案是全国首例利用"爬虫"技术非法入侵其他公司服务器抓取数据,进而实施复制被害单位视频资源的案件. 法院经审理查明,被告单位上海某网络科技有限公司,经营计算机网络科技领域内的技术开发.技术服务.电子商务.电子产品等业务.被告人张某是上海某网络科技有限公司法定代表人兼CEO,负责公司整体运行:被告人宋某于2016年8月至2017年2月任职上海某网络科技有限公司,担任联席CEO,是产品负责人:

计算机知识基础复习

软考快速复习,将近些年习题中自己出错和容易出错的题目收集起来,便于复习. 磁盘调度,某磁盘的转速为7200转/分,传输速度为4MB/s,控制器开销为1ms,要保证读或写一个512B的扇区的平均时间是11.3ms.那么平均寻道时间不应该超过 磁盘的存储时间包括寻道时间和等待时间.寻道时间(查找时间,seek time)为磁头移动到目标磁道所需要的时间不应该超过_____ms. 在本题中,因为磁盘的转速为7200转/分,即磁盘每转一圈所需的时间为8.33ms,因此,平均等待时间为4.17ms.已知传

转载计算机的潜意识的文章:机器学习的入门级经典读物

在本篇文章中,我将对机器学习做个概要的介绍.本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践.这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核.当然,本文也面对一般读者,不会对阅读有相关的前提要求. 在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢? 我并不直接回答这个问题前.相反,我想请大家看两张图,下图是图一:  图1 机器学习界的执牛耳者与互联网界的大鳄的联

推荐文章:机器学习:“一文读懂机器学习,大数据/自然语言处理/算法全有了

PS:文章主要转载自CSDN大神"黑夜路人"的文章:          http://blog.csdn.NET/heiyeshuwu/article/details/43483655      本文主要对机器学习进行科普,包括机器学习的定义.范围.方法,包括机器学习的研究领域:模式识别.计算机视觉.语音识别.自然语言处理.统计学习和数据挖掘.这是一篇非常好的文章,尤其感学原文作者~          http://www.thebigdata.cn/JieJueFangAn/1308

一文读懂机器学习,大数据/自然语言处理/算法全有了……

原文地址 http://www.open-open.com/lib/view/open1420615208000.html http://www.cnblogs.com/subconscious/p/4107357.html 引论 在本篇文章中,我将对机器学习做个概要的介绍.本文的目的是能让即便全然不了解机器学习的人也能了解机器学习.而且上手相关的实践.这篇文档也算是 EasyPR开发的番外篇.从这里開始.必须对机器学习了解才干进一步介绍EasyPR的内核.当然,本文也面对一般读者.不会对阅读有