1.ASCII码表
由来:通过一个字符和一个整数相加所得出的表。(表中所记录的是字符的真实值)
ASCII码表中有三个重要的值:
‘a’=97
‘A’=65
‘0’=48
2.字符串中的“+”
字符串数据与其他数据做+,所得出结果是字符串类型。
这里的+不是数学中的+而是字符串连接符。
3.数据类型中补充几个小问题
(1)在定义long或者float类型的变量的时候要加上L或f后缀,整数默认是int类型,而小数默认是double类型。
(2)byte,short在定义的时候,他们接收的其实是一个int类型的值。只不过是它们自己做了一个数据检测,只要不在它们的范围内,就会报错。
(3)byte值的问题:10000000B = +-128(这里的二进制的1既是符号位又是数值位)//理解参看正负零的概念
(4/*重点*/)前面写到数据类型转换中的默认转换遵循:
byte,short,char→int→long→float→double
这其中long类型占用8字节,而float占用4字节。问题:为什么在这儿是大的存储空间转换成小的存储空间而不用担心损失精度?原因:
①它们底层的存储结构不同。
float数据类型在存储时通常采用的是科学计数法,因此一个浮点数由两部分所组成:底数m和指数e
1°底数部分使用二进制数来表示次浮点数的实际值。那么问题来了,底数部分在科学计数法中往往是小数形式,那么小数该如何转换为二进制数呢?
首先是整数部分,除以二,直到商为0,余数反转。
小数部分则是乘以二,知道乘位为0,进位顺序取。
2°指数部分则是占用8bit的二进制数,可表示的数值范围是0~255
我还是举个例子吧:
**总结:
float所表示的数据范围其实是比龙类型数据要大的。
long(max) = 2`63-1
float(max) = 3.4*10`38
(5)java语言中的字符char可以存储一个中文汉字吗?为什么?
能。因为java语言中的字符占用2个字节。(因为汉字多于256个)
网友评论