导航:首页 > 编程语言 > python二进制数字

python二进制数字

发布时间:2025-01-21 02:15:12

Ⅰ 如何用python将十进制数字转为二进制,以及将二进制转为十六进制

1、将十进制转换成二进制,利用bin()方法。

Ⅱ 如何用python判断某个二进制位数是否为偶数

下面是三种方式:

①通过模2除2(%2、/2)的方法

num%2——取出二进制的最后一位

num/2——右移去掉二进制的最后一位

通过while循环,依次取出二进制的最后一位数字判断是否为1,若为1则count++,while(num)只有当num变为0时循环结束。

问题:在测试-1出现bug,-1的二进制中应该有32个1,输出却为0。我们将-1带入代码中发现-1%2=0,count不增,然后-1/2=0,循环结束,故输出count的值为0。

解决方案:将变量num的数据类型改为unsigned int (无符号整型),此时表示的是正的整型的最大值,所以当num=-1时,表示二进制为32个1的正数,通过循环可以输出正确的个数。

②通过右移操作符(>>)、按位与操作符(&)实现

Example:当num=10(1010),通过右移操作num>>i,二进制向右移动i位。

//i=0,num>>0,右移0位,此时(1010)&(0001)=0

//i=1,num>>1,右移1位,此时(0101)&(0001)=1,count++

//i=2,num>>2,右移2位,此时(0010)&(0001)=0

//i=3,num>>3,右移3位,此时(0001)&(0001)=1,count++

……

因为二进制共32位,所以循环要执行32次后结束,得到count为2。

缺点:不够高效,必须循环32次。

③通过按位与操作符(&)巧妙运算实现

Example: 当num=15时,

1//num&(num-1)=(1111)&(1110)=(1110)

2//num&(num-1)=(1110)&(1101)=(1100)

3//num&(num-1)=(1100)&(1011)=(1000)

4//num&(num-1)=(1000)&(0111)=0 ,循环停止。共执行4次while循环。

(2)python二进制数字扩展阅读

一、指定的某一位数置1

宏 #define setbit(x,y) x|=(1<<y)

二、指定的某一位数置0

宏 #define clrbit(x,y) x&=~(1<<y)

三、指定的某一位数取反

宏 #define reversebit(x,y) x^=(1<<y)

四、获取的某一位的值

宏 #define getbit(x,y) ((x) >> (y)&1)



Ⅲ python输入一个三位数 输出百位十位个位数字的二进制数

s = 123
for i in list(str(s)):

print(bin(int(i)))

阅读全文

与python二进制数字相关的资料

热点内容
三万人需要什么服务器 浏览:570
压缩包后缀和文件夹后缀有啥区别 浏览:268
常州水蒸汽压缩机 浏览:364
操作服务器是什么 浏览:630
海南免税溯源码怎么查 浏览:979
苹果系统转换安卓系统有什么麻烦 浏览:692
pdf如何拆分成多个pdf 浏览:109
广西dns联通服务器地址大全 浏览:500
问道端游下载了忘了在哪个文件夹 浏览:251
开源phpoa框架 浏览:293
惠普511类似文件夹图标闪动 浏览:53
php通讯录系统 浏览:73
javajar包maven 浏览:108
仿图怪兽安卓源码 浏览:978
程序员越来越困 浏览:866
女朋友java程序员 浏览:338
魔兽世界加密货币 浏览:783
程序员打卡日记 浏览:766
车间压缩空气有水怎么处理 浏览:835
java类调用php 浏览:476