首页 > 其他分享 >&(按位与运算)、|(按位或运算)、^(异或运算)

&(按位与运算)、|(按位或运算)、^(异或运算)

时间:2023-02-08 14:35:09浏览次数:35  
标签:11111111 01100110 运算 二进制位 左移 异或 按位

按位与运算符(&)

对俩个数据进行二进制按位与运算。

二进制规则:0&0=0;  0&1=0;   1&0=0;    1&1=1

      双1为1,否则为0.

例:102&255即:01100110&11111111=01100110 十进制为:102

        01100110

        11111111

--------------------

        01100110

负数按补码形式参加按位与运算

按位或运算符(|)

对俩个数据按二进制按位或运算。

二进制规则:0&0=0;  0&1=1;   1&0=1;    1&1=1

      有1为1,否则为0.

例:102&255即:01100110&11111111=11111111 十进制为:255

        01100110

        11111111

--------------------

        11111111

负数按补码形式参加按位与运算

 

异或运算符(^)

对两个数据按二进制位进行“异或”运算。

二进制规则:0^0=0;  0^1=1;  1^0=1;   1^1=0

      相同为0,否则为1

例:102&255即:01100110&11111111=11111111 十进制为:153

        01100110

        11111111

--------------------

        10011001

负数按补码形式参加按位与运算

 

取反运算符(~)

对1个数据按二进制位进行“取反”运算。

二进制规则:~0=1,~1=0

      取相反数

例:102即:01100110=10011001十进制为:153

 

左移运算符(<<)

将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)

例:40 = 10<< 2将a的二进制位左移2位,右补0

10=00001010左移俩位=00101000=10

注意:左移1位后a = a *2; 

若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。即:a<<n ,若ad的二进制舍弃不包含1,则 a=a*n次方

右移运算符(>>)

将一个运算对象的各二进制位全部右移若干位(右边的二进制位丢弃,,正数左补0,负数左补1)

例:2 = 10>> 2将a的二进制位左移2位,右补0

10=00001010左移俩位=00000010=2

注意:操作数每右移一位,相当于该数除以2

左补0 or 补1得看被移数是正还是负

 

 

补码

正数:原码=反码=补码

[+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补

负数:

原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如:如果是8位二进制:

[+1]原= 0000 0001

[-1]原= 1000 0001

第一位是符号位,因为第一位是符号位,所以8位二进制数的取值范围就是:(即第一位不表示值,只表示正负。)

[1111 1111 , 0111 1111]

[-127 , 127]

负数的反码是在其原码的基础上,符号位不变,其余各个位取反

[-1] = [1000 0001]原= [1111 1110]反

负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(也即在反码的基础上+1)

[-1] = [10000001]原= [11111110]反= [11111111]补

标签:11111111,01100110,运算,二进制位,左移,异或,按位
From: https://www.cnblogs.com/lqh969696/p/17101210.html

相关文章

  • Codeforces Round #833 (Div. 2)-D. ConstructOR -构造、位运算
    题目:https://codeforces.com/problemset/problem/1748/D当时自己做的时候完全没什么想法,可能一个原因就是当时总想找充要条件首先题解说了一个很显然的性质,即\((a,b,d)......
  • c++学习 4 运算符及其应用技巧
    一按位与运算符“&”按位与运算符,全1为1,有0则0。特点:和1相与保持不变,和0相与都变为0。功能:将指定位置清0。example:  10001100&11001011--------------------......
  • GS8552/GS8551/GS8554零漂移CMOS带射频滤波器运算放大器,可替换AD8552/SGM8552
    GS855X放大器是单/双/四电源,低功耗,零漂移CMOS操作放大器,放大器提供1.8MHz的带宽,轨对轨输入和输出,并从1.8V到5.5V。GS855X使用斩波器稳定技术来提供非常低的失调电压(小于30μ......
  • 【JavaScript】5_常见的运算符(三种逻辑运算符+关系运算符)
    5、逻辑运算符1!逻辑非!可以用来对一个值进行非运算它可以对一个布尔值进行取反操作true-->falsefalse-->true如果对一个非布尔值进行取反,它会先将其转换为布尔值......
  • 系统 随机生成一个4位数的纯数字验证码 对验证码+5 求余 做加密运算 反序列输出
    packagecom.fqs.demo;importjava.util.Random;publicclassSjWeiShu{publicstaticvoidmain(String[]args){//1237777777777777777=number......
  • 分支语句及三元运算符
    三元运算符var a=boolean?true:false//boolean是true取truefalse取false表达式算数表达1-1-1条件表达式1-1>1关系表达式true&&1运算符的执行流程示例......
  • 2.6 掌握逻辑运算的窍门
    将二进制数表示的信息作为四则运算的数值来处理就是算术。而像图形模式那样,将数值处理为单纯的0和1的罗列就是逻辑。计算机能处理的运算,大体可分为算术运算和逻辑运算。算......
  • 运算符(JAVA)
    运算符(JAVA)运算符算术运算符:+,-,*,/,%,++,--赋值运算符:=关系运算符:>,<,>=,<=,==,!=逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>条件运算符:?:扩展赋值运算符:+=,-=,*=,/=publicclassDe......
  • C++ 位运算
    位运算基本符号:& 按位与     &=按位与赋值| 按位或       |= 按位或赋值^ 按位异或   ^= 按位异或赋值<< 左移    <<= ......
  • JavaScript 使用 !! 运算符的利弊
    !!运算符是在JavaScript中将一个值转换为布尔值的常用方法。使用这个运算符的优点是:简单易用:它只需要一行代码就可以完成转换,而不需要使用其他的方法。可读性:它很......