Java位运算符

▲ 首先需要了解一些计算机的基础:

  1. 对于一个有符号的数(能表示正负),最高位就是符号位,其中0代表正数、1代表负数。
  2. 原码:把一个数换算成二进制形式,就是原码。
    反码:原码中0变1、1变0——除符号位不变。
    补码:正数的补码和原码一样的、负数的补码等于它的反码加1。
  3. 计算机底层,所有数都是以补码形式保存。

Short s = 264; 举例,Short 占16位

Short s = -264; 负数时符号位为1

▲ 位运算符:它只能对整数进行计算

  1. “&” 与:上下两位都是1时,得到结果才是1。
  1. “|” 或:上下两位只要有一个是1,得到结果就是1。
  1. “~” 非:单目运算符,原来是0就变1、原来是1就变0,符号都会变。它会改变数的正负。
  1. “^” 异或:上下两位不同时,得到结果就是1、上下两位相同时,得到结果是0。
  1. “<<” 左移N位:就相当于乘以2的N次方。
  1. “>>” 右移N位:就相当于除以2的N次方,如果除不尽,得到结果总是比实际除得结果略小的整数。
  1. “>>>” 无符号右移N位:在最高位总是补0,因此无论之前的数是什么,运算之后的结果总是正数。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容