首页 > 其他分享 >计算机2进制位运算

计算机2进制位运算

时间:2023-04-06 11:04:29浏览次数:36  
标签:11111111 运算 计算机 00000000 0101 异或 按位 1001 进制

按位与(&)
0101&1001 = 0001 //有一个为0则结果为0
按位或(|)
0101|1001 = 1101 //有一个为1则结果为1
按位取反(~)
~0101 = 1010    //0变1,1变0
按位异或(^)
0101^1001 = 1100 //对应bit位相同,则结果位取0,否则取1
  • 0异或任何数=任何数
  • 1异或任何数=任何数取反
  • 任何数异或自己=把自己置为0
    按位异或常见用途:
    1.使某些特定的位翻转 (reverse)
    2.实现两个值的交换,而不必使用临时变量
a=9(1001), b=12(1100)
a = a^b //0101
b = b^a //1001
a = a^b //1100

3.快速判断两个值是否相等 return (a^b)== 0

原码:一个数绝对值的2进制码就是该数的原码
反码:对一个数的原码取反,得到的就是该数的反码
补码:对一个数的反码+1,得到的就是该数的补码(最小值除外)

移位运算

<< 左移位

计算规则:将2进制数据整体向左移动一位,高位自动溢出,低位补0

n =     00000100 10010001 00111111 01010101
m=n<<1  0000100 10010001 00111111 010101010
k=n<<2  000100 10010001 00111111 0101010100
j=n<<8  10010001 00111111 01010101 00000000
>> 带符号右移

计算规则:规则: 当高位(符号位)为1的时候,高位补1,保持负数符号,低位舍弃 当高位(符号位)为0的时候,高位补0,低位舍弃

n = -50  11111111 11111111 11111111 11001110 -50
m=n>>1   111111111 11111111 11111111 1100111 -25
k=n>>2   1111111111 11111111 11111111 110011 -13

n =  50  00000000 00000000 00000000 00110010  50
m=n>>1   000000000 00000000 00000000 0011001  25
k=n>>2   0000000000 00000000 00000000 001100  12
>>> 无符号右移

计算规则:无论是正数还是负数,高位补0,低位舍弃



标签:11111111,运算,计算机,00000000,0101,异或,按位,1001,进制
From: https://blog.51cto.com/u_5513510/6172414

相关文章

  • 二进制如何转十进制,十进制如何转二进制
    10进制转2进制就是除2取余数,按余数先后顺序排列:例如:5=5%2+2%2=101  2进制转10进制,从0位开始各位从低位开始乘以2的位次方结果相加:例如:110=0×2的0次方+1乘以2的1次方+1乘以2的2次方=6 听语音原创|浏览:9953631234567分步阅读学计算机的朋友刚开始学习时都要接触进制之间的转......
  • 颜色透明度16进制对照表
    https://www.colorhexa.com/color-nameshttps://htmlcolors.com/ 颜色透明度16进制对照表穷格万物关注42018.01.0211:18:38字数203阅读121,412100%—FF99%—FC98%—FA97%—F796%—F595%—F294%—F093%—ED92%—EB91%—E890%—E689%—E388%—E087%......
  • Python三目运算
    Python的赋值语句,有一种带条件判断的语法,将赋值和条件判断融为一行代码,使需要条件判断的赋值代码写起来更加简练高效,与Java语言中的三元表达式?:语法一样。>>>a=123ifTrueelse321>>>a123>>>a=123ifFalseelse321>>>a321以上代码,给变量a赋值,如果if......
  • 重载成员访问运算符
    #include<iostream>usingstd::cout;usingstd::endl;classData{public:Data(intdata=0):_data(data){cout<<"Data(int=0)"<<endl;}intgetData()const{return_data;......
  • 20230405-Python运算符-day3
    运算符4月4日算数运算符赋值运算符复合赋值运算符⽐较运算符逻辑运算符算数运算符符号描述实例+加print(1+1)输出结果为2-减print(1-1)输出结果为0*乘print(2*2)输出结果为4/除print(4/2)输出结果为2//整除print(9//4)输出结果......
  • 计算机网络
                             ......
  • Java进制转换
    publicstaticvoidmain(String[]args){ Scannerscan=newScanner(System.in); Stringrs="2022"; System.out.println(Integer.parseInt(rs,9)); scan.close();}上述代码实现的功能:将2022的9进制数转化为10进制......
  • 计算机中的编码和字符集:理解二进制、字节流和常见编码方案
    编码:将字符串转换到字节串的过程。解码:将字节串转换成字符串的过程。GB2312既是一种中文字符集,也是以ANSI标准为基础,实现的中文编码方案。它主要用于简体中文编码,是中国国家标准,于1981年发布。GBK是GB2312的超集。Unicode是一种字符集,定义了所有字符的唯一标识符(码点),同时......
  • 计算机概览
              ......
  • 4.运算符号
    常见运算符赋值运算符增量运算符逻辑运算符常见运算符+、-、*、、/、%/:除以结果为正数%:获得余数 赋值运算符=,+=,-=,/=,%=,<<=,>>=,&=,^=,!=f+=1 //为f加1,f为加1后的值 增量运算符++,--++i:先i的值加一i--:先显示i的值,后加一 逻辑运算符&&//逻辑与,1......