博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第2章 基本数据类型
阅读量:4146 次
发布时间:2019-05-25

本文共 896 字,大约阅读时间需要 2 分钟。

章节导学

计算机中的存储单元为什么要分类型呢?

现实世界中的数据可以根据形态分类,如3、-5是整数,且一个是正的,一个是负的;2.3、1.23×10-5是小数;a、+是字符。计算机中没有正负号,没有小数点,没有……,只有0和1。无论整数、小数或字符,所有数据在计算机中都将编码成由0和1组成的二进制串。假设计算机中一个存储单元的存储状态为01011010,那么这个存储单元的值(解码后的值)在理论上可以是一个整数,可以是一个小数,也可以是一个字符。不确定类型的存储单元,没有确定的值,是无法使用的。只有存储单元的类型确定以后,它的值才能确定。因此,计算机中的存储单元要分类型。

作为存储单元的标识,C语言程序中的变量有明确的类型,因此,它们的实际值是确定的。在输出一个变量的值时,printf函数会根据不同的格式字符把它解码成不同的值。输出值的“多样性”与变量实际值的“确定性”并不矛盾。

计算机中的编码在形态上具有统一性(全部为0和1组成的二进制串),因此,计算机中不同类型存储单元之间的相互赋值在理论上就变得没有任何障碍(可以直接拷贝)。这种特点体现在程序中,就表现为一些似乎矛盾的赋值,如某变量只能取非负值,但程序中却依然用一个负数给它赋值;明明是字符型变量,但程序中却用整数给它赋值。

数据类型决定了计算机的计算能力。

当某种数据确定用什么样的存储单元存储后,计算机的计算能力实际上就已经确定了。如果计算机中用4个字节存储整数,则计算机中所有的整数无论大小都会是32位的二进制数,同时,计算机的“整数计算能力”仅限于4个字节所能编码整数的范围,计算机中不可能出现此范围之外的整数。如果计算机中用8个字节存储小数,则计算机的“小数计算能力”只能精确到小数点后的某位(具体精度视编码规则而定,通常为15至16位)。正如一个算盘,完工后它的“计算能力”就确定了。并非它“不会”算更大的数,而是它的“硬件”制约了它的能力。

计算机的特点影响着与之沟通的C语言。其它编程语言也是如此。

学习C语言遇到问题时应养成“大胆猜测,小心求证”的好习惯,这也是通过学习知识培养自身能力所必须具备的好习惯。

转载地址:http://zcdti.baihongyu.com/

你可能感兴趣的文章
基于S5PV210的uboot移植中遇到的若干问题记录(一)DM9000网卡移植
查看>>
Openwrt源码下载与编译
查看>>
我和ip_conntrack不得不说的一些事
查看>>
Linux 查看端口使用情况
查看>>
文件隐藏
查看>>
两个linux内核rootkit--之二:adore-ng
查看>>
两个linux内核rootkit--之一:enyelkm
查看>>
关于linux栈的一个深层次的问题
查看>>
rootkit related
查看>>
配置文件的重要性------轻化操作
查看>>
又是缓存惹的祸!!!
查看>>
为什么要实现程序指令和程序数据的分离?
查看>>
我对C++ string和length方法的一个长期误解------从protobuf序列化说起(没处理好会引起数据丢失、反序列化失败哦!)
查看>>
一起来看看protobuf中容易引起bug的一个细节
查看>>
无protobuf协议情况下的反序列化------貌似无解, 其实有解!
查看>>
make -n(仅列出命令, 但不会执行)用于调试makefile
查看>>
makefile中“-“符号的使用
查看>>
go语言如何从终端逐行读取数据?------用bufio包
查看>>
go的值类型和引用类型------重要的概念
查看>>
求二叉树中结点的最大值(所有结点的值都是正整数)
查看>>