位左移與 iota 計數配合 Go語言

2021-10-06 17:20:19 字數 724 閱讀 1490

在 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,所以...