[C++]Bit Operation 心得

Alan Hsieh
Feb 2, 2023

--

雖然Bit Operation很多語言都有,但由於工作的關係,主要都寫C++,因此讓我偷懶一下。這篇主要在記錄到工作到目前遇到的問題,以及到目前的心得。

介紹

Bit Operation,也常聽到人家講 Bitwise Operation,實際就是對位元做運算,不像平常遇到的運算式,在寫底層的code時常會用到這種寫法,因此FW與HW其實都很常遇到。

Bit Operation比起一般的運算來的快上許多,細節就請大家去Google吧。但Bit Operation也有些細節需要注意,例如對變數的熟悉度、未定義行為等,想了解更多也可以看jserv大大的你所不知道的 C 語言: bitwise 操作 文章,接下來就來列一下在工作上遇到的問題:

前面幾行是方便認變數,其中第9行是對資料型別的bit數不熟悉,因此結果不如預期;第14行是shift超過變數本身的bit數,因此會產生未定義行為(undefined behavior)。

心得

Bit Operation 最常見的就是硬體底層的code或追求極致效率時常見的寫法,但對於平常習慣看10進位數字的我或其他人來說會需要特別小心使用,在工作時常因為bit搞混而找了很久的bug QQ,寫這篇短心得文也是順便再給自己複習一次。

--

--

Alan Hsieh

畢業於中正大學電機所,目前在IC設計公司擔任工程師,主要分享Code、工作相關與股票心得。Contact me: preposterous9797@gmail.com