在 golang 中,乙個方便的習慣就是使用iota
標示符,它簡化了常量用於增長數字的定義,給以上相同的值以準確的分類。
const (
categorybooks = iota // 0
categoryhealth // 1
categoryclothing // 2
)
位左移常見實現儲存單位的用例
使用位左移與 iota 計數配合可優雅地實現儲存單位的常量列舉:
type bytesize float64
const (
_ = iota // 通過賦值給空白識別符號來忽略值
kb bytesize = 1<<(10*iota)
mb gb
tb pb
eb zb
yb)
在通訊中使用位左移表示標識的用例
type bitflag int
const (
active bitflag = 1 << iota // 1 << 0 == 1
send // 1 << 1 == 2
receive // 1 << 2 == 4
)flag := active | send // == 3
型別 列舉與 iota 計數器
固定且有限的類別,比如春夏秋冬,亦或者kb mb gb tb等。列舉是非常常見的型別,通常情況下指的是一種一連串或者連續性的定義,它的總數是固定的,比如星期 月份 容量 顏色。它有一定的規律並且可以用一連串順序數字代替。列舉在其他語言裡用的比較多,go 語言裡沒有明確意義上的列舉定義。iota實際上...
位運算(取反 補碼 左移 右移 與 或)
4.右移 5.與6.或 7.異或 8.位運算的應用 ending 1 將參加運算的兩個數轉換為二進位制,若預設為int則有32位,這裡預設為short型16位 10 0000 0000 0000 1010 2 左移兩位,右補0 0000 0000 0010 1000 401 先求出 10以補碼的形式...
Python位運算 與 或 異或 左移右移
與運算規則 1 1 1 0 1 0 0 0 0以1和5的與運算為例 1的二進位制為 001 5的二進位制為 101 僅最後一位都為1,所以結果為001 1 5 1或運算規則 1 1 1 1 0 1 0 0 0以4和6的或運算為例 4的二進位制為 100 6的二進位制為 110 僅最後一位都為0,所以...