第三章 数据和C(一)

计算机可以做很多事,比如数值计算,名字排序,执行语音或视频命令,计算彗星轨道,准备邮寄列表,拨电话号码,画图,做决策以及任何其他可以想象到的事情。

要完成这些任务,程序需要数据,即承载信息的数字与字符。

个人感想:“一切都围绕着数据,枯燥的数字或者字符,其本质蕴涵着信息,数据既是信息。怪不得有个经典表述——程序=数据+算法。 前者是信息,后者是对信息的处理,提取出对我们有用的部分”。

数据类型是个很精妙的发明。

要把人类日常使用的数据,存储到计算机中,又要是二进制。那就必须规定怎么存,还要规定怎么取,这样才能保证数据的准确性。

这种规定或者称为约定,与人之间交流可以写成文字,大家照着规矩办事就行了。

那与计算机怎么约定呢?

所以需要有一个程序来负责做具体的约定执行工作,这个程序就是编译器。

数据类型既是写给人类看的(上层约定),也是是写给编译器看的(下层约定),编译器负责数据怎么存,怎么取。编译器又怎么样负责呢?——把存取的详细方式与过程,做成了一条一条可执行的机器码。

了解了这个,就能明白为什么需要数据类型,int,short,long这些数据为什么要区分范围,为什么会溢出,并且一旦数据类型说明符写错,明明定义了unsigned int num= 300,printf(“%d”,num)的结果会是负数。




用%u表示无符号,用%hd表示短整型。

本机上long的位数有64位,所以跟long long 的值相同。

要表现区别,把代码最后%ld改成%d就行。


字(word)是自然存储单位,对于8位机来说,字=8位;对于16位机来说,字=16位;对于32位机来说,字=32位。

所以字(word)是一个可变的单位,但有时候,人们又习惯用1字=16位,1字=2字节(byte)来表示。

比如win7自带的计算器:



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值