看板 C_Sharp 關於我們 聯絡資訊
我寫code很強調可讀性,一開始寫web時寧可犧牲效能, 也要讓人容易理解程式碼。 今年跳去寫MCU(微控制器),要大量寫C及bit操作 在這領域看別人寫的code佔98%,自己只能從sample中作點變化 覺得有些bit操作技巧很簡潔,應用到上層c#也不錯。 1. 判斷奇偶數: 直覺會用%餘數來判斷,但可以直接: if (val & 0x01 == 0x01) // 奇數 { // 若為0x00為偶數,此法比%餘數效能較快。 } 2. 0與1互換: 雖然c#用true/false來判斷,但它函數回函寫int還是比較可變化 尤其寫ui程式,會大量用到狀態控制來切換,有時候要讓0與1互換 直覺會用絕對值 val = Abs(val - 1); 不過可以用: val ^= 0x01; // ^為互斥運算子 初看會覺得把程式搞複雜了,不過裏頭一些bit觀念還不錯 但記住寫這類的code,行尾加上註解是必要的 畢竟自己的學習所得,不可成為別人負擔。 底層的code都是隱晦不明的,define值一大堆 不過看別人的code真的是一種學習,有時覺得在浪費時間 有時能猜測出別人程式碼的input與output值, 無形中能更迅速拿別人的成果來達成自己目的。 不爽別人亂寫程式的同時,有時候轉化成擷取他人成果的想法 會比較正面些。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.117.1
Anonymoux:val = 1 - val; 這樣如何? 12/10 23:20
TroyLee:習慣就好,寫MCU比較在乎空間..畢竟不是像server有個4G ram 12/11 00:14
andymai:只能說有的人並不能接受這樣的寫法~因為不夠"直覺"... 12/11 00:24
iamso1:哈 我直覺是用^說 XD 12/11 02:04
chrisQQ:^ +1 12/12 01:11
QCANCER:^ +1 12/28 11:20