lvgo

磕磕绊绊、点点滴滴

去繁从简——理解java基本类型以及位运算符

写在前面 磕磕绊绊、点点滴滴。要是翻车,还望扶一把

我自己搞技术不纠结,不墨迹,不猥琐
该你懂的时候自然就懂了。兄弟,强扭的瓜虽然不甜,但是解渴!

java中的基本类型

一共有八个

类型 字节 位数 存储量(2^bit)分正负
byte 1 8 2^8 具体值 -2^7~2^7-1
short 2 16 自己算
int 4 32 自己算
long 8 64 自己算
float 4 32 浮点型底层结构与上面不同(别纠结)
double 8 64 就知道贼大ok
char 2 16 存的是Unicode码从 ‘\0000’~’\FFFF’
boolean ? ? 想知道就了解一下吧,我是不想纠结它了

简单粗暴位运算

不要看这么短的介绍,就这么短,就这么短,搞他就够了!

位运算指的是对2进制数值的操作,位运算速度要高于普通运算符运算,这是因为普通运算的底层就是位运算

简单粗暴,没啥不懂

<< 左移
1 << 1 就是 0001 左移 1个位置
0001 左移一个位置变成 0010
那结果就自然是2了 
重点来了 我们知道int的最大值是-2^31~2^31-1
1 << 31 = -2147483648;
那么
1 << 32 = ?
上面讲到int4个字节 32位,那么现在你知道为什么了吗?
自己再试试移动 64 96 ···· 看看结果
看下面这个
1L << 32 = ? 这是为什么你也明白了吧
>> 右移
1 >> 1 你觉得是多少?
简单粗暴 等于0 为啥?
因为右移之后就没有了,不同于左移
& 位与运算
1&1 = 同为1才为1 否则为0
结果
1&1 = 0001 & 0001 = 0001 = 1
1&2 = 0001 & 0010 = 0000 = 0
2&3 = 0010 & 0011 = 0010 = 2
| 位或运算
1|1 = 其中一个为1才为1 否则为0
结果
1|1 = 0001 | 0001 = 0001 = 1
1|2 = 0001 | 0010 = 0011 = 3
2|3 = 0010 | 0011 = 0011 = 3
^ 位异或运算
1|1 = 相同为0 不同为1
结果
1|1 = 0001 | 0001 = 0000 = 0
1|2 = 0001 | 0010 = 0011 = 3
2|3 = 0010 | 0011 = 0001 = 1
>>> 无符号右移
暂时不懂,以后补上...
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34344123/article/details/78977944
个人分类: 二进制
想对作者说点什么? 我来说一句

一天征服傅里叶变换

2014年06月23日 547KB 下载

sql 学习宝典

2012年08月28日 2.5MB 下载

没有更多推荐了,返回首页

不良信息举报

去繁从简——理解java基本类型以及位运算符

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭