day004 位運算小常識

2021-10-17 04:48:58 字數 1323 閱讀 7424

① 常用進製有10進製(89, 23);2進製(1010, 1111);8進製(765,01014);16進製制(af,013ed)。計算機直接能儲存的資料只有數字;數字以二進位制補碼的形式儲存。

② 進製之間的轉換:

print

(num)

# 轉10進製

print

(bin

(num)

)# 轉二進位制

print

(oct

(num)

)# 轉八進位制

print

(hex

(num)

)# 轉16進製制

① 原碼 : 最高位表示符號位(0表示正、1表示負),後面是數的真值(數字的絕對值的二進位制)。

10(原碼): 00001010

25263(原碼): 0110001010101111

-10(原碼):10001010

② 反碼:正數的原碼、反碼、補碼一樣;負數的反碼:原碼的符號位不變,其餘各位取反。

10(反碼):00001010

-10(反碼):11110101

③ 補碼;負數的反碼加1。

10(補碼):0 0001010

-10(補碼):1 1110110

① 位運算: &(按位與)、|(按位或)、^(異或)、~(取反)、<<(左移)、>>(右移)

例:1 & 1 -> 1, 1 & 0 -> 0, 0 & 0 -> 0

111 & 101 -> 101

② 位運算的運用

應用1:快速判斷整數的奇偶性

所有的偶數在儲存的時候最低位都是0,所有奇數在儲存的時候最低位都是1

整數 & 1 -> 提取出數字在儲存的時候的最低的值

num =

89if num &1==

1:print

('奇數'

)else

:print

('偶數'

)

應用2:整數 << n --> 整數快速乘以2的n次方;

整數 >> n -> 整數快速整除(2的n次方)

print(3

<<1)

# 6print(5

<<1)

# 10

print(-

2<<1)

# -4

print(6

>>1)

# 3print(5

>>1)

# 2print(-

5>>1)

# -3

程式設計素養 Day004

1.頁面上輸入乙個年份 需驗證 判斷是否是閏年 能被 4 整除,卻不能被 100 整除的年份 能被 400 整除的是閏年 並且在頁面上顯示相應提示資訊。2.如何通過命令提示符登入 mysql?如何列出所有資料庫?如何切換到某個資料庫並在上面工作?如何列出某個資料庫內所有表?如何獲取表內所有 fiel...

day 004 迴圈結構

主要有兩個1個是for in乙個是while,跳出的是用break,單次跳出用continue 1.for的格式 for x in range 101 sum x2.while結構格式 while true do what you want to do3.上 row int input 請輸入行數 ...

程式設計素養Day004

一 頁面上輸入乙個年份 需驗證 判斷是否是閏年 能被 4 整除,卻不能被 100 整除的年份 能被 400 整除的是閏年 並且在頁面上顯示相應提示資訊。1 2 執行截圖 二 如何通過命令提示符登入 mysql?如何列出所有資料庫?如何切換到某個資料庫並在上面工作?如何列出某個資料庫內所有表?如何獲取...