PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] most significant bit
作者:
realgirl
(realgirl)
2023-03-26 15:22:54
各位大大好,
請問如果給您選擇,
您會選哪個函式來找出MSB呢?
int get_highest_bit_position(unsigned char x)
{
int n = 7;
if (x == 0) return -1;
if ((x >> 4) == 0) { n = n-4; x=x << 4;}
if ((x >> 6) == 0) { n = n-2; x=x << 2;}
if ((x >> 7) == 0) { n = n-1;}
return n;
}
int get_highest_bit_position(unsigned char x){
for(int i = 7; i >= 0 ;
作者:
LPH66
(-6.2598534e+18f)
2023-03-26 16:43:00
https://en.cppreference.com/w/cpp/numeric/countl_zero
C++20 把這個標準化了, 之前各家編譯器的這函數有各自名字更多可參考維基百科↓
https://en.wikipedia.org/wiki/Find_first_set
作者:
johnjohnlin
(嗯?)
2023-03-27 07:52:00
如果自幹的話我有看過1+最後4bit查表的做法不過還是call clz比較省事
作者:
nh60211as
2023-03-27 18:38:00
clz > 2 > 查表 > 1
作者:
johnjohnlin
(嗯?)
2023-03-29 00:40:00
2是O(N) 1是O(lgN), 查表是O(1)但是表不能太大所以以前看xvid的實做不會用2
作者:
a1234567289
(蛋包飯)
2023-04-03 17:55:00
這兩個應該都是O(1) 他們都可以在某個常數時間完成
作者:
johnjohnlin
(嗯?)
2023-04-05 09:46:00
啊我說的N是bit數,64b的時候指令數就明顯有差
繼續閱讀
[問題] UEFI的Driver-Model Driver
devcc
Re: [討論] 前輩們變數都怎麼命名?左括號放那?
fatalfeel2
[討論] 匈牙利變數命名 Hungarian Notation 語義學
fatalfeel2
Re: [討論] 前輩們變數都怎麼命名2?
fatalfeel2
Re: [討論] 前輩們變數都怎麼命名?
fatalfeel2
Re: [問題] 你所不知道的C語言:函式呼叫篇
lc85301
[問題] 你所不知道的C語言:函式呼叫篇
Kuba4ma
[作品] 搭 Drogon Framework 寫個 Web 小遊戲
qrtt1
[問題] double的問題
tstanly
[問題] 如何只特化參數類別的其中一個函式
alan23273850
Links
booklink
Contact Us: admin [ a t ] ucptt.com