JAVA基础之原始类型变量

整数类型

·byte:8位 1个字节  无符号大小为-2^8~2^8-1 有符号大小为-2^7~2^7-1

·short:16位 2个字节 无符号大小为-2^16~2^16-1 有符号大小为-2^15~2^15-1

·int:32位4个字节 无符号大小为-2^32~2^32-1 有符号大小为-2^31~2^31-1

·long:64位8个字节 无符号大小为-2^64~2^64-1有符号大小为-2^63~2^63-1

浮点类型

·float::32位4个字节

·double:64位8个字节

字符类型

·char:16位2个字节

布尔类型

·boolean:1位


为什么取值范围中负数要比整数多一个数?

这是因为+0和-0的缘故 0000000为正零 10000000为负零 只存在一个零 所以把零归结到了负数的范围中  了这样负数就是正好2^相应的位数 正数为2^相应位数减一。这么做也是为了呼应补码的原理 补码正数正好   就是原码本身 而负数则是符号位不变其他位取反后加一。


 变量之间是如何转化的?

同类变量之间转化遵循大范围的接小范围的,小范围的接大范围的要强制转换但是有可能丢失精度。

不同类型变量之间转化遵循高精度接低精度,低精度的接高精度的需要强制转换同样可能丢失精度。


public static void main(String[] args){
    //大范围接小范围(可以)
    int a =1;
    long b = a;
    //小范围接大范围(不可以)
    long c = 1;
    int d = c; 
}

public static void main(String[] args){
    //高精度接低精度(可以)
    int a = 1;
    float b = a;
    //低精度接高精度(不可以)
    float c = 3;
    int d = c;
}

 
    
无法转换的情况可以通过强制转换来实现 但是可能会丢失精度 看具体的数有没有超过要转换的范围 

JAVA使用的字符集是ASCII么?

很明显不是的ascii是8位字符集里面存的数至多也就512个这显然是存不下JAVA的字符的举个例子char类型里面可以存中文,中文是占两个字节的按照ascii来看的话就明显存不下 因为他是一个字节的大小。JAVA中实际上是使用的Unicode字符集的这是一种16位的字符集。

如何实现的把二进制数显示到屏幕上变成我们所熟知的字符的?

其实他是通过字符集的解析规律把二进制数变成一个个有规律的像素点然后再在屏幕上显示出来。








  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值