zoukankan      html  css  js  c++  java
  • 【C语言天天练(二二)】位操作

    C的位运算符


    1、二进制反码或按位取反:~

    ~(10011010) = (01100101)。

    假设val是一个unsigned char,~val不改名原来val的值。


    2、位与:&

    二进制运算符&通过对两个操作数逐位进行比較产生一个新值。

    (10010011)&(00111101)=(00010001)。

    C中的一个组合的位与赋值运算符:&=。


    3、位或:|

    二进制运算符|通过对两个操作数逐位进行比較产生一个新值。

    (10010011)|(00111101)=(10111111)。

    C中的一个组合的位或赋值运算符:|=。


    4、位异或:^

    二进制运算符^对两个操作数逐位进行比較。对于每一个位,假设操作数中相应位有一个为1。结果为1。

    (100100011)^(00111101)=(10101110)。

    C中有一个组合的位异或赋值运算符:^=。


    5、掩码:“位与”运算符通常跟掩码一起使用。

    掩码是某些位设为开(1)而某些位设置为关(0)的位组合。

    flags = flags & MASK。


    6、打开位。

    如。对于flags。想要打开它的第二位,能够使用flags = flags | (1<<2).


    7、关闭位。如,对于flags。想要关闭它的第二位,能够使用flags = flags & (~(1<<2))。


    8、转置位。

    转置一个位表示假设该位打开。则关闭该位。假设该位关闭,则打开该位。

    如。对于flags,想要转置它的第二位,能够使用flags  = flags ^ (1<<2)。


    9、移位运算符。

    左移:<<。右移:>>。左移运算符<<将其左側操作数的值的每位向左移动,移动的位数由其右側操作数指定。

    空出的位用0填充,而且丢弃移出左側操作数末端的位。

    右側位运算符>>将其左側操作数的值的每位向右移动,移动的位数由其右側操作数指定。丢弃移出左側操作数右端的位。


    10、移位运算符:移位运算符能够提供快捷、高效的对2的幂的乘法和除法。

    number << n : number乘以2的n次幂。

    number >> n : 假设number非负,则用number除以2的n次幂。


  • 相关阅读:
    科技巨头争抢的“超级账本”,到底是个什么组织?
    区块链结合教育,将给教育行业带来哪些变革?
    国家区块链战略开启,教育行业应对几何?
    区块链如何改变教育
    区块链技术在教育领域的应用模式与现实挑战
    知乎-区块链技术运用于教育有多少种可能?
    区块链+教育,让教育行业充满希望
    教育区块链应用案例【2019】
    区块链在教育行业的落地应用现状介绍
    PowerShell 搜索文件编码格式
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10689604.html
Copyright © 2011-2022 走看看