首页 > 其他分享 >特别的二进制运算

特别的二进制运算

时间:2023-08-14 14:12:13浏览次数:20  
标签:10 特别 运算 二进制 arr ret key print

## 快速求2的n次幂
print(10>>1)
print(13>>1)
print(13<<1)
print(-3<<1)
print(1<<10)  # 快速求2的n次幂
print(1<<4)  # 快速求2的n次幂
# print(-0.6<<1) # 这个无法运算
'''
检验奇偶性
'''

x = 11 # 8+2+1 ==>1011
if (x & 1) == 0:
    print( 'x是偶数')
else:
    print( 'x是奇数')
'''
交换两个元素'''
a, b = 1, 2
a ^= b
b ^= a
a ^= b
print(a, b)

'''
快速求余数,除数C刚好是2的n次幂才有效
'''
C = 1 << 10
X = 123456789
r1 = x % C
r2 = x & (C - 1)
print(r1, r2)
'''
找出只出现1次的数
a = 88
a ^ a = 0   任何数和他本身做位异或运算等于0
a ^ 0 = a   任何数和0做位异或运算等于本身
'''
## 找出列表中只出现一次的数
arr =[20,30,20,10,10]
ret = arr[0]

for i in range(1,len(arr)):
    ret ^= arr[i]
    print('这是i',i)
print(ret)
'''
利用位运算进行简单加密
'''
x = 1346852
key = 23333333333
encrypt = x ^ key
print(encrypt)
decrypt = encrypt ^ key
print(decrypt)
'''
获取某个数的二进制第k位
'''
#1001
a = 9
k = 3
print((a & (1 << k)) >> k)
k = 2
print((a & (1 << k)) >>k)

'''
将二进制的第k位设置为1
'''
a= 1 <<10
k = 3

a = (a | (1 << k))
print(a)

标签:10,特别,运算,二进制,arr,ret,key,print
From: https://www.cnblogs.com/heris/p/17628467.html

相关文章

  • 二进制上传下载文件
    二进制上传下载文件只适用于delphi前端。下载文件procedureTForm1.Button2Click(Sender:TObject);//下载beginvarbin:TBinFile;bin.resource:='binfile';bin.filename:='1.exe';bin.filesaveto:='e:\';bin.downfile;end;上传文件......
  • 第9周项目2-Time类中的运算符重载(续)
    问题描述:在Time类中的运算符重载基础上(1)定义对时间对象的自增和自减一目运算符(2)定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。代码:#include<iostream>usingnamespacestd;classCTime{private:shortinthour......
  • 第9周项目1-复数类中的运算符重载(续)
    问题描述:在复数类中的运算符重载基础上(1)再定义一目运算符-,-c相当于0-c。(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。代码:#include<iostream>usingnamespacestd;classComplex{public:Complex(){real=......
  • 华为OD机试-位运算
     importjava.util.ArrayList;publicclassMain{publicstaticvoidmain(String[]args){Integer[]nums=newInteger[]{3,5,2,8,4};//差异值---》异或运算^//相似值---》与运算&ArrayList<Integer[]>pairs=n......
  • 二、运算符
    !>顺便在这里提一句,在编程下你的输入法是要英文的,所有符号也要是英文符号,例如中文符号是。而英文符号是.当然编程就和数学一样,存在有算数运算符。运算符号描述示例+两数相加a+b-两数相减a-b*两数相乘a*b/两数相除a/b%取模-返回除......
  • 分治算法——241. 为运算表达式设计优先级
    分治思路:对于一个算式来说,总是可以根据运算符分为左右两部分算式,接着分别计算结果并合并;每一个结果都是一个数组,包含这个算式的所有可能结果,计算时将左右两部分排列组合;递归的终点是字符串是纯数字(即分到一个算式中只剩下一个数字),直接返回。 比如示例中的2*3-4*5,有下面的......
  • php运算符
    加、减、乘、除、负数$a=10;$b=1;echo$a+$b."</br>";echo$a-$b."</br>";echo$a*$b."</br>";echo$a/$b."</br>";echo-$a;输出:1191010-10逻辑运算(与、或、非、异或)var_dump(1and1);var_dump(true&am......
  • 第二章 运算符和数学函数
    第二章运算符和数学函数2.1数学运算符:创建序列(两头都会包含)>x<-2:4>x[1]234+加>1+1[1]2-减>2-1[1]1*乘>1*2[1]2/浮点数除法>3/2[1]1.5%/%整数除法>3%/%2[1]1%%余数>3%%2[1]1^或**求幂>2^2[1]4>2**2[1]4......
  • Alertmanager 二进制安装
    下载解压二进制程序123456cd/appswgethttps://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linux-amd64.tar.gztarxfalertmanager-0.24.0.linux-amd64.tar.gz#创建软连接ln-sv/apps/alertmanager-0.24.0.linux-amd64/app......
  • DAY001_二进制运算
    左移和右移无符号左移?Java没有无符号左移无符号右移左边补0有符号右移左边用原符号位补位即正数补0效果同无符号右移、负数补1有符号左移右边补0importorg.junit.Test;publicclassTestAaaBinary{ @Test publicvoidtest01(){ //调用JDK的......