,python计算中位数函数
位运算是直接对内存中整数对应的二进制位进行运算,通常是数字化成二进制数后再进行运算。本文将用Python语言实现位运算,有兴趣的可以看看。
00-1010应用场景案例源代码介绍
目录
程序中的数字在计算机内存中以二进制形式存在。位运算是直接在内存中对整数对应的二进制位进行运算,通常在运算前先数字化成二进制数。
简介
通过在正常操作和位操作中使用位操作,可以提高性能。但会使代码难以理解,建议合理使用。
1.数奇数。
2.数偶数。
3.统计不同的数字等
4.求倒数。
位运算分有6种:
1.按位AND:当两位都是1时,结果是1(统计上是奇数),即所有的1都是1。
2.按位或:当两位都为0时,结果为0(统计上为偶数),即全零为0。
3.按位异或:两个相同的位为0,差为1(常见的统计不一样),即差为1。
4.位反转:0变1,1变0,相当于-x-1。
5.左移操作:将所有二进制位左移若干位,丢弃高位,低位用0填充。
6.右移操作:二进制位全部右移若干位,无符号数、高位和有符号数用0(算术右移)或0(逻辑右移)填充。
应用场景
# -*-编码: utf-8 -*-
#时间: 2022年5月22日17:56
# file: bitwise.py
#微信官方账号3360玩测开发
#:当两位都是1时,结果是1(统计上是奇数),即所有1都是1。
a1=10
b1=9
10=0b1010
9=0b1001
8=0b1000
打印(纸盒(a1))
打印(纸盒(b1))
打印(a1 b1) # 8
print(int(0b1000 ,2))
#:当两位都为0时,结果为0(统计上为偶数),即全零为0。
a2=10
b2=9
10=0b1010
9=0b1001
11=0b1011
打印(纸盒(a2))
打印(纸盒(b2))
打印(a2 b2) # 11
print(int(0b1011 ,2))
#:两位同为0,不同为1(常见统计不同),即不同为1。
a3=10
b3=9
10=0b1010
9=0b1001
3=0b0011
打印(纸盒(a3))
打印(纸盒(b3))
打印(a3 ^ b3) # 11
print(int(0b0011 ,2))
# ~: 0变1,1变0,相当于-x-1
a4=10
10=0b1010
-x-1=-11
打印(纸盒(a4))
打印(~a4) # -11
print(int(-0b1011 ,2))
#求倒数
打印(~a4 1) # -10
#:所有二进制位左移若干位,高位丢弃,低位用0填充,即x ^ n=x *(2 * * n)
a5=10
10=0b1010
x=10 * 2 ** 3=10 * 2 * 2 * 2
b5=a5 3
打印(纸盒(b5))
打印(b5) # 80
print(int(0b1010000 ,2))
#:二进制位全部右移若干位,无符号数、高位和有符号数用0填充(算术右移)或用0填充(逻辑右移)。
#即:x n=x/(2 ** n)
a6=64
64=0b1000000
x=64/(2 ** 3)=64/(2 * 2 * 2)
b6=a6 3
打印(纸盒(b6))
打印(b6) # 8
#经典案例:用于查找一次出现的次数。
a7=1 ^ 1 ^ 2
a8=1 ^ 2 ^ 1
a9=2 ^ 1 ^ 1
打印(a7)
打印(a8)
打印(a9)
#统计原方法和位操作方法花费的时间。
导入时间
循环=30000000
start1=time.time()
odd_list1=[]
对于范围内的I(环路):
如果i 1==1:
奇数_列表1 .追加(I)
end1=time.time()
打印(ftime1:{end1 - start1} )
start2=time.time()
odd_list2=[]
对于范围内的I(环路):
如果i % 2==1:
奇数_列表1 .追加(I)
end2=time.time()
打印(ftime2:{end2 - start2} )
#时间。# 18686 . 488688888686
#时间。# 18686 . 388888868686
关于Python中位运算的简单实现,本文到此结束。关于Python中位运算的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。