美文网首页
C语言:按位运算

C语言:按位运算

作者: 爱生活_更爱挺自己 | 来源:发表于2020-11-14 19:36 被阅读0次

C语言:按位运算

  • C有这些按位运算的运算符
    • & 按位的与
    • | 按位的或
    • ~ 按位取反
    • ^ 按位的异或
    • << 左移
    • >> 右移

按位与&

  • (x) == 1并且(y) == 1,那么(x & y) == 1

  • 否则的话(x & y) = 0

  • 按位与常用于两种应用:

    • 让某一位或某些位为0 : x & 0xFE
    • 取一个数种的一段: x& 0xFF

按位取或|

  • 如果(x) == 1或(y) == 1,那么(x | y) =1

  • 否则的话, (x | y) == 0

  • 按位或常用于两种应用

    • 使得一位或几个为1: x|0x01
    • 把两个书拼起来: 0x00FF | 0xFF00
  1010 1010   AA

| 0101  0100  54
-----------------
  11111 1110  FE

按位取反 ~

  • (~x) = 1- (x)
  • 把1位变0,0位变1
  • 想得到全部位1的数:~0
  • 7的二进制是0111, x|7使得低3位为1,而
  • x & ~7,就使得低3位为0

逻辑运算 VS 按位运算

  • 对于逻辑运算,它只看到两个值:0和1
  • 可以认为逻辑运算相当于把所偶非0值变成1,然后做按位运算
    • 5 & 4 —> 4 而 5 && 4 —> 1 & 1 —> 1
    • 5 | 4 —> 5 而 5 || 4 —> 1 | 1 —> 1
    • ~4 —> 3 而 !4 —> !1 —> 0

按位异或 ^

  • 如果(x) == (y) , 那么(x ^ y) = 0
  • 否则的话,(x ^ y) == 1
  • 如果两个位相等,那么结果为0;不相等,结果为1
  • 如果x和y相等,那么x ^ y的结果为0
  • 对于一个变量用同一个值异或两次,等于什么也没做
    • x ^ y ^ y —>x

相关文章

  • C语言:按位运算

    C语言:按位运算 C有这些按位运算的运算符& 按位的与| 按位的或~ 按位取反^ 按位的异或<< ...

  • 位运算

    位运算小结(按位与、按位或、按位异或、取反、左移、右移) 位运算不管是在Java语言,还是在C语言中,或者其他语言...

  • 举例说明OC中的位运算

    OC中的位运算和C/C++语言的位运算是一样的。一般有 &(按位与),| (按位或),~ (按位取反),<<(左移...

  • C语言之位运算和文件操作

    一、位运算 按位计算 位运算的操作对象只能是整型或字符型数据。C语言提供6种位运算符:位运算不产生进位 &按位与|...

  • C 语言中的位级运算和 C 语言中的逻辑运算

    C 语言中的位级运算 C 语言的一个很有用的特性就是它支持按位布尔运算。事实上,我们在布尔运算中使用的那些符号就是...

  • 基础位运算符

    位运算符是用来对二进制位进行操作的 c语言中有6种位运算符: & 按位与| 按位或^ 按位异或~ 取反<< 左移右...

  • iOS 枚举|结构体

    iOS 运算符[/p/1eaa9e021fac] 左移<<右移>>按位或︳按位并&按位取反~按位异或^ C语言用法...

  • Objective-C中的位运算符用法

    Objective-C语言中有各种各样的运算符可处理数字中的特定位,如下表所示: 符号运算 & 按位与| 按位...

  • 巧妙运用C语言位运算

    巧妙运用C语言位运算,C语言是面向过程的,而C++是面向对象的 位运算 位运算的运算分量只能是整型或字符型数据,位...

  • C语言位运算

    C语言位运算_C语言中文网 C语言位域(位段)_C语言中文网

网友评论

      本文标题:C语言:按位运算

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