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

int __builtin_ffs (unsigned int x)

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

int n = 1;//1
int m = 8;//1000
cout<<__builtin_ffs(n)<<endl;//输出1
cout<<__builtin_ffs(m)<<endl;//输出4

int __builtin_clz (unsigned int x)

返回前导的0的个数。

int __builtin_ctz (unsigned int x)

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

int n = 1;//1
int m = 8;//1000
cout<<__builtin_ctzll(n)<<endl;//输出0
cout<<__builtin_ctz(m)<<endl;//输出3

int __builtin_popcount (unsigned int x)

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

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

int __builtin_parity (unsigned int x)

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

int n = 15;//二进制为1111
int m = 7;//111
cout<<__builtin_parity(n)<<endl;//偶数个,输出0
cout<<__builtin_parity(m)<<endl;//奇数个,输出1

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

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

c++高效位运算函数之 __builtin_的更多相关文章

  1. 高效位运算 __builtin_系列函数

    •int __builtin_ffs (unsigned int x) 返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4. •int __builtin_clz ...

  2. VC中实现GCC的2个比较常用的位运算函数

    在GCC中内嵌了两个位运算的函数,但在VC中并没有这两个函数(有相似函数). //返回前导的0的个数. int __builtin_clz (unsigned int x) //返回后面的0个个数,和 ...

  3. Matlab位运算笔记

    本文为转载其他地方的文章; MATLAB函数 1.matlab函数bitset 设置数的某一位二进制位为1. <Simulink与信号处理> 使用方法 C = bitset(A,bit) ...

  4. NumPy 位运算

    NumPy 位运算 NumPy "bitwise_" 开头的函数是位运算函数. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操作 b ...

  5. Numpy | 13 位运算

    NumPy "bitwise_" 开头的函数是位运算函数.本章都是按二进制来操作的. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操 ...

  6. 10、numpy——位运算

    NumPy 位运算 NumPy "bitwise_" 开头的函数是位运算函数. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操作 b ...

  7. Lesson11——NumPy 位运算

    NumPy 教程目录 Lesson11--NumPy 位运算 NumPy "bitwise_" 开头的函数是位运算函数. NumPy 位运算包括以下几个函数: 函数 描述 bitw ...

  8. C语言回顾-函数和位运算

    1.函数的概述 功能独立的代码块 C语言由若干函数组成 1)从定义分,库函数和用户定义函数两种 2)从返回值分,有返回值函数和无返回值函数 3)从参数分,无参函数和有参函数 2.形参和实参 1)形参定 ...

  9. 数据类型、位运算、sizeof()函数

    数据精度,依次升高.(负数必须使用有符号类型) 不同精度的数据间运算,所得结果为高精度类型. 数据类型详细信息如下图: 整型数据的数制:十进制(32).八进制(032,以0开头).十六进制(0x32, ...

  10. 位运算+引用+const+new/delete+内联函数、函数重载、函数缺省参数

    update 2014-05-17 一.位运算 应用: 1.判断某一位是否为1 2.只改变其中某一位,而保持其它位都不变 位运算操作: 1.& 按位与(双目): 将某变量中的某些位(与0位与) ...

随机推荐

  1. MYSQL8存储过程生成日历表以及异常处理

    一.环境 数据库:mysql8.0.25 社区版 操作系统:windows 11 ------------------------------------ 二.创建日历表 CREATE TABLE ` ...

  2. 《编译原理》阅读笔记:p18

    <编译原理>学习第 3 天,p18总结,总计 14页. 一.技术总结 1.assembler (1)计算机结构 要想学习汇编的时候更好的理解,要先了解计算机的结构,以下是本人学习汇编时总结 ...

  3. Nuxt3 的生命周期和钩子函数(五)

    title: Nuxt3 的生命周期和钩子函数(五) date: 2024/6/29 updated: 2024/6/29 author: cmdragon excerpt: 摘要:本文详细介绍了Nu ...

  4. 嵌入式进阶之关于SPI通信的案例分享——基于全志科技T3与Xilinx Spartan-6处理器

    本文主要介绍基于全志科技T3与Xilinx Spartan-6的通信案例. 适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境 ...

  5. .Net Core 全局捕获异常-过滤器

    1.代码版本 .Net Core 版本 2.2 2.自定义异常捕获类 新建一个类 CustomerExceptionFilter.cs 继承 Microsoft.AspNetCore.Mvc.Filt ...

  6. MySql 安装详细步骤

    一.官网下载 官网地址:https://dev.mysql.com/downloads/installer/ 二.开始安装 1.点击按装文件开始安装 2.只安装服务端就可以了,一直下一步 3. 4. ...

  7. java WT -- JSON WEB TOKEN 加密/校验工具类

    依赖项 <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</art ...

  8. Mybatis面试题及答案

    Ibatis和Mybatis? Ibatis:2010年,apache的Ibatis框架停止更新,并移交给了google团队,同时更名为MyBatis.从2010年后Ibatis在没更新过,彻底变成了 ...

  9. R语言将多景遥感影像拼接在一起的方法

      本文介绍基于R语言中的raster包,遍历文件夹,读取文件夹下的大量栅格遥感影像,并逐一对每一景栅格图像加以拼接.融合,使得全部栅格遥感影像拼接为完整的一景图像的方法.   其中,本文是用R语言来 ...

  10. 3. set 的使用

    3. set 的使用 因为在实际工程中,我们不会将具体文件全部写出来,这是一件费力不讨好的事情. 3.1 set 定义变量 在 CMake 文件中,默认的变量数据类型是字符串,如果要用别的类型,需要进 ...