【Java】基础、Java 数据类型

Java 整形
一、Java中整形有下面几种
1. byte 共 8 字节 (-2^7 ~ 2^7-1 )
2. short 16字节
3. int 32字节
4. long 64字节 
1).其中在内存中存储的时候是按照数字的补码存储的,下面说一下原码, 反码, 补码
原码 : 对于正数将数字转化为二进制 比如 8 可以转化为二进制数字 00001000 其中最高位为符号位, 对于负数 最高位的符号位为 1 其他的转为二进制数字 比如 
-8 转化为二进制原码是 10001000 
反码 : 正数的反码是正数本身, 负数的反码是 除了符号位(最高位) 其余的位数按位取反
比如 -8 的原码是11110111
补码 : 正数的补码是帧数本身, 负数的补码是反码 +1
2).其中在定义的时候 byte 可以直接定义 eg : byte b = 1;
但是在定义long 的时候要注意, 如果要将一个比较小的数字定义为long 的时候可以直接定义, Java 虽然会将它看为int 类型的, 但是在运算时候可以自由转化, 但是如果要将一个大数字定义为long 类型(这个数字超出了int 的范围)。那么必须在数字后面带‘L’ 或者 ‘l' 
3).数值的进制
8 进制的数字 前面带 0 
16 前面带 0x
2 进制前面带 0B
二、浮点型
1).Java 中浮点型有两种 (存储的时候采用科学计数法)
Float 共32位,其中 第一位是符号位, 接下来 8 位表示指数位, 剩下的23位表示尾数
Double 共64位, 其中第一位符号位, 接下来 11位表示指数位, 剩下的52位为尾数
定义Float 类型的变量的时候要在小数后面加f;
(浮点型可以表示很大的整数)
注意赋值时候的类型变量 
float  a = 5.6 是错的 , 默认下 5.6 是double类型的变量
2).Java表达式的自动提升
byte 和 short 在运算时候会转化为 int 型运算, 要注意数字的转化问题
整个表达式运算的时候会自动将数据类型提升到表达式中的最高次
三、运算符
1).Java 中运算符 + - * / ;
其中 / 会截断, 不会四舍五入
% 取余操作符, 两边的操作数可以是整数, 也可以是小数; 
eg : System.out.println(2.4 % 1.1); 
得到的结果是 0.1999999999997 (浮点型有误差)
2). Java 中位操作 & 与, | 或, ~非, << 左移, >> 右移, >>> 无符号右移
>> 和 >>> 区别:
如果操作数是正数的话没有区别, 
如果操作数是负数的话, >> 之后在最高位填补的是1,而 >>> 在最高位填补的是0


对于 byte short char 做位运算时候,总是先转化为Int
对于 int 类型的 右移时候 右移 b 位, 如果b > 32, 则先 b = b % 32, 然后移位,
long 一样, b = b % 64 
3). 逻辑运算
&& 与 , & 不短路与, || 或, | 不短路或。
|| 与 | 的区别 (在第一个条件为真的前提下, || 不会判断后面的 而,| 会判断后面的)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值