Re: C30組語請教
|
||||
---|---|---|---|---|
資深會員
|
最快
1. CPU本身指令(組語支援) 最簡單(但有點慢) 2. 旋轉移位+計數(減數) 3. 要快一....點 CPU本身沒支援(或不知道指令) 但不能太慢 以你的16bits來說先分8bit if( val >= 0xFF00) { //表示 第1個0在低8位 // 建一個 bit0_table陣列(256)查表 // 0x00 ~ 0x7F=> 7(bit7) // 0x80 ~0xBF => 6 (bit6) // ... // 0xFE => 0 (bit0) // 0xFF=> -1 ?? (沒有0) //看你怎麼定義它 bit0_table[val && 0xFF] } else { //表 第1個0在高8位 // 用同一個查表+加8 bit0_table[(val>>8) && 0xFF] } 註: 要特別處理 0xFFFF(沒有0)
發表於: 2023/6/6 0:25
|
|||
程式是
依照寫出來(的code),跑出結果 不是依照你想出來的,得到結果 先有需求規格 後有解決方案 |
||||
|
C30組語請教
|
||||
---|---|---|---|---|
資深會員
|
有一16位元整數,例x=0b1111101011011010,由高位元往低位元找(bit15~bit0),出現第1個為0的位置,比如上面數值x的第1個出現0在bit10,要如何使用組語處理?
發表於: 2023/6/5 19:44
|
|||
|