Quantcast
Channel: What is the fastest/most efficient way to find the highest set bit (msb) in an integer in C? - Stack Overflow
Viewing all articles
Browse latest Browse all 36

Answer by Harry Svensson for What is the fastest/most efficient way to find the highest set bit (msb) in an integer in C?

$
0
0

Woaw, that was many answers. I am not sorry for answering on an old question.

int result = 0;//could be a char or int8_t insteadif(value){//this assumes the value is 64bit    if(0xFFFFFFFF00000000&value){  value>>=(1<<5); result|=(1<<5);  }//if it is 32bit then remove this line    if(0x00000000FFFF0000&value){  value>>=(1<<4); result|=(1<<4);  }//and remove the 32msb    if(0x000000000000FF00&value){  value>>=(1<<3); result|=(1<<3);  }    if(0x00000000000000F0&value){  value>>=(1<<2); result|=(1<<2);  }    if(0x000000000000000C&value){  value>>=(1<<1); result|=(1<<1);  }    if(0x0000000000000002&value){  result|=(1<<0);  }}else{  result=-1;}

This answer is pretty similar to another answer... oh well.


Viewing all articles
Browse latest Browse all 36

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>