总结归纳计算机编程中的各种数据类型,其表示形式和计算方法。重点关注类型转换、数值溢出和移位等操作。
以java为例
基本数据类型:
byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
boolean:只有true和false两个取值。
char:16位,存储Unicode码,用单引号赋值。
运算:
算术运算:+加 -减 *乘 /除 %取模 ++自增 --自减
关系运算:==相等 !=不相等 >大于 <小于 >=大于等于 <=小于等于
位运算:&按位与 |按位或 ~取反
逻辑运算:&&与 ||或 !非
类型转换:
1.自动类型转换:
所谓自动类型转换,是指系统支持把某种基础类型直接付给另一种基础类型的变量。
注意:自动类型转换的前提条件,必须是把表数范围小的数值或变量赋给表数范围大的变量。
2.强制类型转换:
强制转换的语法格式是:(targetType)value,强制转换的运算符是圆括号(())。
强制转换需要注意点:
1).把一个浮点数强制转换为整数时,java会直接截断浮点数的小数部分。
2).把一个超出数据范围的数值赋给数据类型是,会出现数据溢出的情况,造成数据的缺失。
数据溢出:
基本的数据类型(long,int,short,byte,char,float,double)都有自己能够保存的数据范围。
当某一种类型的数值已经达到了此类型能够保存的最大值之后,再继续扩大,或者达到了最小值后再继续缩小,就会出现数据溢出问题。
例如:int a; long b; b = a * 10; 在计算过程中a*10可能会发生溢出超过int范围,应该在计算时将变量a强制类型转换成长整型。
移位操作:
1.>> 是带符号右移,若左操作数是正数,则高位补“0”,若左操作数是负数,则高位补“1”.
2.<< 将左操作数向左边移动,并且在低位补0.
3.>>> 是无符号右移,无论左操作数是正数还是负数,在高位都补“0”**
来源:CSDN
作者:weixin_46338427
链接:https://blog.csdn.net/weixin_46338427/article/details/104365006