[問題] 修改某byte中幾個位元

看板C_and_CPP (C/C++)作者 (馬英九)時間16年前 (2009/11/05 16:55), 編輯推噓2(204)
留言6則, 5人參與, 最新討論串1/2 (看更多)
遇到的問題:比較好的更改位元做法 希望得到的正確結果:比較smart的寫法 使用語言:C 在寫8-bit微處理器的過程中需要更改並做判斷其中的幾個位元 BYTE: test _ _ _ _ _ _ _ _ 想到的寫法是 先右移2 bits 修改完以後再左移 0 0 0 並且還原 bit 0 & bit 1 0 0 1 0 1 0 請問這有比較聰明的寫法嗎? 0 1 1 . 感謝 . . 1 1 1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.245.71

11/05 17:02, , 1F
有何不可?bit operation和shift已經是CPU裡面最快的
11/05 17:02, 1F

11/05 17:03, , 2F
運算,你在這麼簡單的operation上怎麼最佳化差別都不大
11/05 17:03, 2F

11/05 17:10, , 3F
常見的作法是和常數作or和and
11/05 17:10, 3F

11/05 17:17, , 4F
先AND出你要的BIT 在SHIFT
11/05 17:17, 4F

11/05 22:46, , 5F
原po可以參考Tech_Job版我po的"面試題目分享參考答案"
11/05 22:46, 5F

11/08 01:16, , 6F
BitTestSet();
11/08 01:16, 6F
文章代碼(AID): #1AyfC11I (C_and_CPP)
文章代碼(AID): #1AyfC11I (C_and_CPP)