導航:首頁 > 編程語言 > 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二進制數字相關的資料

熱點內容
氣動隔膜式壓縮機 瀏覽:470
linux如何修改主機名 瀏覽:104
單片機游標上下移動 瀏覽:526
數據加密驗證 瀏覽:106
程序員被激怒 瀏覽:891
winxp找不到伺服器dns地址 瀏覽:842
以文本文件的格式保存考生文件夾 瀏覽:41
編譯原理文法分為幾類 瀏覽:568
JAVA基礎學python要多久 瀏覽:74
java流量控制 瀏覽:934
java實現多重繼承 瀏覽:706
票據通加密狗怎麼在新系統上使用 瀏覽:793
航模加密狗連接電腦 瀏覽:473
好用的匯編語言編譯器 瀏覽:863
自己編譯安卓虛擬機 瀏覽:911
中國的古代演算法 瀏覽:656
上層怎麼看程序員 瀏覽:25
程序員便當排骨 瀏覽:855
如何禁用安卓全家桶 瀏覽:261
oa伺服器異常怎麼辦 瀏覽:73