一、位、字节和字
术语位、字节和字用于描述计算机数据单位或计算机存储单位。这里主要指存储单位。
最小的存储单位称为位(bit)。它可以容纳两个值(0或1)之一(或者可以称该位被置为“关”或“开”),不能在一个位中存储更多的信息,但是计算机中包含数量极其众多的位。位是计算机存储的基本单位。
字节(byte)是常用的计算机存储单位。几乎对于所有的机器,1个字节均为8位。这是字节的标准定义,至少在衡量存储单位时是这样(C语言中对此有不同的定义)。由于每个位或者是0或者是1,所以一个8位的字节包含256(2的8次方)种可能的0、1组合。这些组合可用于表示0到255的整数或者一组字符。这种表示可以通过二进制编码(仅使用0或1方便地表示数字)来实现。
对于一种给定的计算机设计,字(word)是自然的存储单位。对于8位微机,比如原始的Apple机,一个字正好有8位。使用80286处理器的早期IBM兼容机是16位机,这意味着一个字的大小为16位。基于Pentium的PC机和Macintosh PowerPC中的字是32位。现在普遍的计算机是64位,但更强大的计算机还可以有更长位数的字。
二、整数类型与浮点数类型
对于人,整数和浮点数的区别在于它们的书写。对于计算机,区别在于它们的存储方式。下面分别对它们进行介绍。
1、整数
整数(integer)就是没有小数部分的数。在C中,小数点永远不会出现在整数的书写中。例如1、-23和4561都是整数。数3.14、0.77和8.000都不是整数。整数以二进制数字存储。例如整数9的二进制表示为1001,在8位的字节中存储它需要将前4位置0,后4位为1001,即00001001。
2、浮点数
浮点数(floating-point)差不多可以和数学中的实数(real number)概念相对应。实数包含了整数之间的那些数。1.75、2.16E7、3.00和4e-8都是浮点数。注意,加了小数点的数是浮点型值,所以3是整数类型,而3.00是浮点型。书写浮点数有多种形式。2.16E7表示2.16乘以10的7次方(即1后面带有7个0),7称为10的指数。
这里最重要的一点是浮点数与整数的存储方案不同。浮点数表示法将一个数分为小数部分和指数部分并分别存储。因此尽管7.00和整数7有相同的值,但它们的存储方式不同。与机器中的二进制存储方式相似,在十进制中5.0可表示为0.5E1,这里的0.5是小数部分,1是指数部分。当然,计算机的内部存储使用二进制数字,它使用2的幂而非10的幂。
这里我们先只关注这两种类型在应用中的区别:
①整数没有小数部分;浮点数可以有小数部分
②浮点数可以表示比整数范围大得多的数
③对于一些算术运算(例如两个很大的数相减),使用浮点数会损失更多的精度
④因为在任何区间内(比如1.0和2.0之间)都存在无穷多个实数,所以计算机浮点数不能表示区域内所有的值。浮点数往往只是实际值的近似。例如,7.0可能以浮点值6.99999存储。
⑤浮点运算通常比整数运算慢。不过,已经开发出了专门处理浮点运算的微处理器,它可以缩小速度上的差别。
审核编辑:汤梓红
-
计算机
+关注
关注
19文章
7440浏览量
87785 -
微处理器
+关注
关注
11文章
2249浏览量
82353 -
C语言
+关注
关注
180文章
7602浏览量
136358 -
浮点数
+关注
关注
0文章
60浏览量
15864
原文标题:C语言中位、字节和字以及整数类型与浮点数类型的比较
文章出处:【微信号:雨飞工作室,微信公众号:雨飞工作室】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论