位运算总结

作者: vkengr | 来源:发表于2016-12-30 14:23 被阅读116次

一、数据类型的位数

sizeof( byte ) == 8       
sizeof( boolean ) == 8      
sizeof( short ) == 16      
sizeof( int ) == 32       
sizeof( long ) == 64       
sizeof( float ) == 32       
sizeof( double ) == 64       
sizeof( char ) == 16

二、位运算符

<< 左移位,在低位处补0
>> 右移位,若为正数则高位补0,若为负数则高位补1
>>> 无符号右移位,无论正负都在高位补0
& 与(AND)
| 或(OR)
~ 非(NOT)//一元运算符
^ 异或(XOR)
<<= 左移位赋值
>>= 右移位赋值
>>>= 无符号右移位赋值
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值。

三、常用计算

  1. 判断int型变量a是奇数还是偶数
a&1  == 0 //偶数      
a&1 ==  1 //奇数
  1. 求平均值
// 直接求(x + y) / 2,x+y可能超过int的最大范围 
int x、y;
int mid = (x&y)+((x^y)>>1); 
  1. 对于一个大于0的整数,判断它是不是2的几次方
((x&(x-1))==0)&&(x!=0); 
  1. 两个数字互换
x ^= y;     
y ^= x;     
x ^= y; 
  1. 求绝对值
    int abs( int x )    {      
        int y ;      
        y = x >> 31 ;     
        return (x^y)-y ;   
    }
//或者
     (x+y)^y 
  1. 取模运算
//a % (2^n)
a & (2^n - 1)
  1. 乘法运算
//a * (2^n)
  a << n
  1. 除法运算
//a / (2^n) 
a>> n 
  1. 求相反数
(~x+1)
  1. 求a % 2
a & 1

四、其它

  1. 最大的int型数字
// 2^31 - 1
// 011111111111111111111111111111111
1 << 31 - 1 == 2147483647
  1. 最小的int型数字
// 2^31
// 10000000000000000000000000000000
1 << 31 == -2147483648
  1. 1和0和-1
// 00000000000000000000000000000001
// 00000000000000000000000000000000
// 111111111111111111111111111111111
  1. b与B
B表示Byte,字节
b表示bit,比特
1B = 8bit
1Kb = 128B

相关文章

  • 位运算总结

    一、数据类型的位数 二、位运算符 三、常用计算 判断int型变量a是奇数还是偶数 求平均值 对于一个大于0的整数,...

  • 【Algorithm】位运算总结

    异或 表示xor 或 ^ 具有以下几种特性 交换律 结合律 对于任何数x,有x xor x = 0,x xor 0...

  • 算法位运算总结

    在位运算之前,对二进制需要掌握的基础知识 正数的二进制,例如 5原码是 0000 0000 0000 0000 0...

  • 算法总结-位运算

    位运算符用于二进制运算 与运算 & 二进制数 n & 1 的结果为n的末位 异或运算 ^ 长度为 L 的二进制数 ...

  • 位运算使用总结

    今天总结一下,二进制在开发过程中的使用 很多人都觉得 二进制和十进制转换是件麻烦的事,所以很少去用二进制,其实二进...

  • JAVA位运算等运算符总结

    JAVA位运算等运算符总结 一、概述 运算符是一种“功能”符号,用以通知 Java 进行相关的运算。 Java 语...

  • php 的位运算总结

    前言 php的位运算很少会用到,但是用处很大,在有些算法中会用到,在权限管理中也会经常用到,对于理解计算机的世界也...

  • java中位运算^,&,<<,>>,<<<,>>>总结

    出自:https://www.cnblogs.com/liaopeng/p/8436155.html

  • 【总结】位运算常见技巧

    原文地址:https://juejin.cn/post/6844903645171941384[https://j...

  • Java运算符及运算符的优先级

    Java语言中提供了很多运算符来操作变量,现总结以下七种: 赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算...

网友评论

    本文标题:位运算总结

    本文链接:https://www.haomeiwen.com/subject/vzemvttx.html