内存中的存储单元为什么要分类型呢?
现实世界中的数据可以根据形态分类,如3、-5是整数;2.3、1.23×10-5是小数;a、+是字符。计算机采用“纯粹”的二进制,只有0和1。无论整数、小数或字符,只有编码成由0和1组成的二进制串,计算机才能处理。类型不同的数据采用了不同的编码规则,这就导致两个类型不同数据的编码结果可能相同。某存储单元中的数据是01011010,它可能是整数90,也可能是小数0.703125。若这个存储单元是整型,则值为90;若是浮点型,则值为0.703125。只有存储单元的类型确定了,即编码规则确定了,值才能确定,因此存储单元要分类型。变量自然也要分类型,变量的类型就是存储单元的类型。
同类型存储单元的长度通常是固定的。虽然固定的长度便于计算机存取数据,但也限制了计算机处理数据的能力。用4个字节存储整数时,计算机就只能存储编码长度是32位的整数了。长度小于32位的编码可以在保证值不改变的前提下凑成32位,如前面加0,但长度超过32位的编码出现在计算机中时会舍弃“多余”的位数,也就是说计算机中的整数仅限4个字节所能编码的整数。变量不仅有类型还有取值范围。
十进制小数的二进制编码几乎都是无限小数,这就使得计算机中的小数多为近似数,只能保证一定的精度。计算机中的数的特点就是整数有范围,小数有精度。
字符的编码是整数,表示该字符在字符码表中的位置。大写字母A与小写字母a是两个不同的字符,但它们在计算机只是不同的整数,因此,大小写字母相互转换时只需加减两者之间的差。尽管计算机中的字符实为整数可参与算术运算,但运算结果一定要有实际意义。字符型非常重要,计算机通过字符型与用户交互。
遇到问题时可以编程测试,通过程序的运行情况尝试分析解决问题。