一. 深入理解变量
在之前的讲解中,我们谈论的都是定义不同类型的变量时要注意的问题。这一节中,我们将变量投入运算,探索在运算过程中,应该遵守的规则。
在这里对上一节《变量的基本演示》做一个小结,主要有三点。直接书写数字常量时,系统会给常量一个默认的类型,如int和double,当书写的常量赋值给定义好类型的变量时,就会产生错误。还有就是书写的常量和本身默认的类型起冲突。最后一点就是在书写源程序的过程中,一定要采用英文字符。
二. 变量的运算规则
运算的两端都是相同类型才可以,不然无法进行运算。
如果两端都是数值类型的话,虽然具体类型不一样,但是一样可以运算。原理是什么?前提一定是数值型,(为什么其他类型不行?其他类型之间根本无法进行算术运算。)两端数值类型不同,还可以进行运算的原理在于,可以自动提升数值类型。距离说明:byte a=3; int b=4; b=a+b; 本来类型不一样不可以运算,但因为都是数值型,它们本质上只是占据内存的空间大小不一样,将小的空间提高,并不影响计算。这里将byte的一个字节提升至四个字节的int,本质上数值大小没变,只是空间提升,不会影响计算结果,这就是这个原理能够执行的原因。
接着,如果byte a=3;int b=4;a=a+b的话,在DOS运算中,会报错为精度丢失。右边计算的时候,自动提升类型,提高空间是没有问题的,但是在将四个字节的数据赋值到一个字节的空间中时,就会产生精度丢失。为了强行将四个字节的内容赋值给一个字节的空间,这就产生了强制类型转换,a=(byte) (a+b)但我有点搞不清的是,强制的意义何在?在强制类型转换时,会存在舍弃,丢失精度的问题。有时候舍弃完,得到的是负数。在计算机中,到底存放的二进制是符号型还是真值?
时间: 2024-10-18 08:27:29