java 数据类型及其转换 柔光的暖阳◎ 2022-02-18 15:27 401阅读 0赞 # java的数据类型 # ## 整数类型: ## ## 1.byte ## byte类型占的空间是8位,取值范围是:-128 ~ 127。 赋值时如下: byte i=2; //输出: 2 //byte i=128; 这个时候编译器会报错 要进行强转 byte i=(byte)128; //输出的结果:-128 ## 2.short ## short类型占的空间是16位,取值范围是:-![2^\{\{15\}\}][2_15] ~ ![2^\{\{15\}\}][2_15]\-1 short i=2; //输出: 2 ## 3.int ## int类型占的空间是32位,取值范围是:-![2^\{31\}][2_31] ~ ![2^\{31\}][2_31]\-1 ## 4. long ## long类型占的空间是64位,取值范围是:-~![2^\{63\}][2_63] ~ ![2^\{63\}][2_63]\-1 ## 浮点类型(即小数类型) ## ## 5.float 占用32位 6.double 占用64位 ## double e=1.0; double f=1+1.0; //自动转换 ## 字符类型 7.char ## char i='a'; char j='A'; char q='将'; System.out.println(q); ## 布尔类型 ## ## 8.boolean只有两种情况false和true 不可以转换类型 ## boolean e=false; boolean f=true; # 转换 # ## 自动转换 ## ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h0MzE0MTU5_size_16_color_FFFFFF_t_70][] ### 转换规则 ### 范围小的类型向范围大的类型提升,byte、short、char 运算时直接提升为int byte、short、char-->int-->long-->float-->double # 强制转换 # 转换格式: 数据类型 变量名 = (数据类型)被转数据值 // double类型数据强制转成int类型,直接去掉小数点。 int i = (int)1.5; ### 转换原理图 ### ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h0MzE0MTU5_size_16_color_FFFFFF_t_70 1][] # 注意 # 浮点转成整数,直接取消小数点,可能造成数据损失精度。 int 强转成short 砍掉2个字节,可能造成数据丢失。 // 定义s为short范围内最大值 short s = 32767; // 运算后,强制转换,砍掉 2个字节后会出现不确定的结果 s = (short)(s + 10); [2_15]: https://private.codecogs.com/gif.latex?2%5E%7B%7B15%7D%7D [2_31]: https://private.codecogs.com/gif.latex?2%5E%7B31%7D [2_63]: https://private.codecogs.com/gif.latex?2%5E%7B63%7D [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h0MzE0MTU5_size_16_color_FFFFFF_t_70]: /images/20220218/eb2c0411bc344870bb9a79bd551bbf6f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h0MzE0MTU5_size_16_color_FFFFFF_t_70 1]: /images/20220218/8cb63b468da1442aa1cbca858c5fe692.png
还没有评论,来说两句吧...