c++ 向上取整为8的倍数,或者2^x的倍数
生活随笔
收集整理的這篇文章主要介紹了
c++ 向上取整为8的倍数,或者2^x的倍数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 int round_up(int x){
2 return (((x) + 8 - 1) & ~(8 - 1));//向上取整為2^x的倍數需要將本行的兩個8改為2^x
3 }
cout<<round_up(17)<<endl; //24
cout<<round_up(123)<<endl; //128
解釋:
[x,x + 8 - 1]范圍內會包括將x向上取整的結果,比如x=7,則[7,14]中包含取整結果8。
~是按位取反操作,~(8-1)將8的二進制表示從00001000變為11111000,即把1前面的位都變為0。
x+8-1 和 ~(8-1)做按位與&操作,則得到結果。
轉載于:https://www.cnblogs.com/SneakyCrab/p/6101093.html
總結
以上是生活随笔為你收集整理的c++ 向上取整为8的倍数,或者2^x的倍数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kafka集群搭建及SASL/SCRAM
- 下一篇: 文秘专业计算机基础考题,2017年大学计