博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++高效位运算函数之 __builtin_
阅读量:4223 次
发布时间:2019-05-26

本文共 706 字,大约阅读时间需要 2 分钟。

https://www.cnblogs.com/tldr/p/11288935.html

int __builtin_ffs (unsigned int x)

返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4。

int n = 1;//1int m = 8;//1000cout<<__builtin_ffs(n)<

int __builtin_clz (unsigned int x)

返回前导的0的个数。

int __builtin_ctz (unsigned int x)

返回后面的0个个数,和__builtin_clz相对。

int n = 1;//1int m = 8;//1000cout<<__builtin_ctzll(n)<

int __builtin_popcount (unsigned int x)

返回二进制表示中1的个数。

int n = 15; //二进制为1111cout<<__builtin_popcount(n)<

int __builtin_parity (unsigned int x)

返回x的奇偶校验位,也就是x的1的个数模2的结果。

int n = 15;//二进制为1111int m = 7;//111cout<<__builtin_parity(n)<

此外,这些函数都有相应的usigned long和usigned long long版本,只需要在函数名后面加上l或ll就可以了,比如int __builtin_clzll。

https://www.cnblogs.com/tldr/p/11288935.html

你可能感兴趣的文章
Sweet Snippet系列 之 随机选择
查看>>
Sweet Snippet 系列之 Lua表排序
查看>>
名人•牛人•我们这些普通人
查看>>
小话游戏脚本(一)
查看>>
数学笔记(二)之平面表示
查看>>
HGE系列之零 使用细究
查看>>
爬坑笔记
查看>>
再谈谈列表元素的删除
查看>>
小聊聊NGUI中Panel的Clip功能(之二)
查看>>
构造函数与析构函数
查看>>
C++中的new和delete在类中的应用
查看>>
C++中构造函数和析构函数的执行顺序
查看>>
英文论文中“such as, for example, e.g., i.e., etc., et al. ”的用法分析
查看>>
C与C++中string的区别与联系
查看>>
OpenGL学习网站及资料
查看>>
数字图像处理基本知识--笔记一
查看>>
傅里叶变换的通俗理解
查看>>
傅里叶变换理解之二
查看>>
最大公共字串问题
查看>>
面试经
查看>>