首页 > 编程语言 >C++位运算函数总结

C++位运算函数总结

时间:2024-02-29 18:46:58浏览次数:19  
标签:__ cout int 函数 namespace C++ builtin using 运算

__builtin 超实用位运算函数总结

①后导0(__builtin_ctz())

#include<bits/stdc++.h>
using namespace std;

int main()
{
	cout << __builtin_ctz(8) << endl; 
    // ans = 3  because 8 = 0b1000
	return 0;
}

②前导0 (__builtin_clz())

#include<bits/stdc++.h>
using namespace std;

int main()
{
	cout << __builtin_clz(8) << endl; 
    // ans = 28  because 8 = 0b000000000000000000000000000001000  1前面有28个0
	return 0;
}

③1的个数 (__builtin_popcount())

#include<bits/stdc++.h>
using namespace std ;

int main()
{
    cout << __builtin_popcount(7) << endl ;
    // ans = 3   because 7 = 0b111, 3个1.
    return 0 ;
}

④快速开平方(__builtin_sqrt())

#include<bits/stdc++.h>
using namespace std ;

int main()
{
    cout << __builtin_sqrt(225) << endl ;
    // ans = 15   because 15 x 15 = 225,more fast!
    return 0 ;
}

说明:如果是long long的话,那么加上ll即可,例如__builtin_ctzll()。

标签:__,cout,int,函数,namespace,C++,builtin,using,运算
From: https://www.cnblogs.com/gebeng/p/18045093

相关文章

  • 特效学习-光源的特殊运算
    光源的正常运算:物理上光源是反比例衰减逻辑,当x轴趋向远端时,光照强度趋近于0,所以一般的光源在引擎中显示呈:中间足够量,外圈趋向于黑暗在正常现实世界光照的半径是从人的眼睛到达光源,但在引擎中基于对性能的优化往往会设置一个光源半径,光源不会超出这个半径,导致在引擎中的表现会让......
  • 计算机进行小数运算时出错的原因
    首先,计算机进行小数运算时出错的原因可以归结为以下几个方面:精度限制:计算机内部使用二进制表示数据,而二进制无法精确表示所有的小数。这会导致在进行小数运算时,可能会产生舍入误差。例如,0.1在二进制中是一个无限循环小数,计算机只能近似表示,从而导致运算结果的不精确。舍入......
  • 欧拉函数学习笔记
    首先,\(\varphi(n)\)的值是\(n\)内与\(n\)互质的数的个数。//求n的欧拉函数值:phi[n]intgetPhi(intn){intans=n;for(inti=2;i*i<=n;i++){if(n%i==0){ans=ans*(i-1)/i;while(n%i==0)n/=i;......
  • 【C++】Mat和Pat希望邀请他们的朋友来参加派对。他们要编写一个程序完成下面的任务。
    Mat和Pat希望邀请他们的朋友来参加派对。他们要编写一个程序完成下面的任务。让Mat输入他朋友的姓名列表。姓名存储在一个容器中,然后按排列后的顺序显示出来。让Pat输入她朋友的姓名列表。姓名存储在另一个容器中,然后按排列后的顺序显示出来。创建第三个容器,将两个列表合并,删除重......
  • 【C++】相对于数组,在链表中添加和删除元素更容易,但排序速度更慢。这就引出了一种可能
    相对于数组,在链表中添加和删除元素更容易,但排序速度更慢。这就引出了一种可能性:相对于使用链表算法进行排序,将链表复制到数组中,对数组进行排序,再将排序后的结果复制到链表中的速度可能更快;但这也可能占用更多的内存。请使用如下方法检验上述假设。a.创建大型vector<int>对象vi0,并......
  • 递归函数就这么简单!通俗的Go语言递归指南
    /Go语言递归函数/递归是一种很重要的编程技巧,可以用简洁的代码解决许多问题。Go语言同样支持递归函数。本文将通过示例讲解递归函数的用法。本文主要内容如下什么是递归函数递归函数工作原理递归函数结构解析示例1-阶乘计算示例2-斐波那契数列递归......
  • C++ 多线程笔记1 线程的创建
    C++多线程笔记1线程的创建里面代码会用到的头文件#include<iostream>#include<string>#include<memory>#include<thread>#include<vector>#include<stdlib.h>#include<cmath>#include<chrono>#include<ctime>入门例子vo......
  • c++ queue在多线程中的使用
    queue队列,先进先出。多线程的一种使用案例:生产者每3spush一个元素消费者每5s才能pop一个元素(队首)那么,2个消费者就可以及时地消耗掉push的元素。#include<iostream>#include<thread>#include<mutex>#include<queue>std::queue<int>m_queue;std::mutexm_mutex;std:......
  • [没啥用科技] C++ 分数类
    虽然说用的是结构体,但已经实现了同类型加减乘除和分数与整型的加减乘除。写的有点难看,并伴有大常数,以后来改。#include<bits/stdc++.h>#include<bits/extc++.h>#definelllonglong#defineldblongdouble#definem_p(a,b)make_pair(a,b)usingnamespacestd;using......
  • xlua - c#访问lua函数
    lua代码Assets/Lua/Test1.lua.txtfunctionIntParam(p)print("~~~~~IntParam")print(type(p),p)print("~~~~~")returnpendfunctionVec3Param(p)print("~~~~~Vec3Param")print(type(p),p.x,p.y,p.z)......