C语言常用基础位操作

1、使用下面的代码将最右边的1改变为0,假如没有1则结果为0(e.g.,01011000=>01010000):

  x &  (x-1)

此代码可以用来判断一个无符号的整数是否为2的幂,假如x & (x-1)==1,则x为2的幂,否则x不为2的幂

2、相似地,下面的代码可以用来判断一个无符号的整数是否具备2n-1的格式(包括n=0、1)

  x & (x+1)

3、下面的代码将隔离最右边的1,假如右边没有1则结果返回0 (e.g., 01011000 =>00001000):

  x & (-x)

4、下面的代码将隔离最右边的0,假如右边没有0则结果返回0 (e.g., 10100111 =>00001000):

  ~x & (x+1)

5、下面的代码都可以用来产生一个掩码,用来保留尾部的0,假如x=0则返回全1字节 (e.g., 01011000 =>00000111):

  ~x & (x-1)  或  ~(x | -x)   或  (x & -x)-1

6、下面的代码用来产生一个掩码,用来保留最右边的1与尾部所有的0,假如x=0则返回全1字节(e.g., 01011000 =>00001111):

  x ^ (x-1)

7、下面的代码用来将最右边的1右边的0全部改为1,假如x=0则返回全1字节(e.g., 01011000 = >01011111):

  x | (x-1)

8、下面的代码将最右边的1临近的1取反 (e.g., 01011000 =>01000000):

  ((x | (x-1))+1) & x

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android系统手机端抓包方法(tcpdump)

抓包准备 1. Android手机需要先获得root权限。一种是否获得root权限的检验方法:安装并打开终端模拟器(可通过安卓市场等渠道获得)。在终端模拟器界面输入su并回车,若报错则说明未root,若命令提示符从$变#则为rooted&am…

hdu 1800 (map)

链接:http://acm.hdu.edu.cn/showproblem.php?pid1800 Flying to the Mars Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10830 Accepted Submission(s): 3472 Problem DescriptionIn the year 8…

数据挖掘在金融行业十大应用

目前数据挖掘在各行各业应用广泛,尤其在金融、保险、电子商务和电信方面得到了很好的效果,本文对金融行业数据挖掘应用做了一个简单的总结,目的是想起到抛砖引玉的作用,欢迎各位大牛拍砖。 一:风险控制(贷款…

.NET 6 中的七个 System.Text.Json 特性

忽略循环引用在 .NET 5 中,如果存在循环依赖, 那么序列化的时候会抛出异常, 而在 .NET 6 中, 你可以选择忽略它。Category dotnet new() {Name ".NET 6", }; Category systemTextJson new() {Name "System.Text.Json",Parent dotnet }; do…

Redis整合Spring结合使用缓存实例

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的方法切入到有需要进入缓存的类或方法前面。 一、Redis介绍 什么是Redis? redis…

读取无线手柄数据_xbox series x/s 手柄开箱

原标题:xbox series x/s 手柄开箱xbox series x/s 手柄开箱 2020-11-12 08:29:003点赞2收藏4评论小编注:此篇文章来自#原创新人#激励计划,新人发文前三篇文章,篇篇额外奖励50金币。参加超级新人计划活动,新人发文即可瓜…

豆瓣评分9.4!这一部纪录片,探秘中国人迹罕至的未至之境!

全世界只有3.14 % 的人关注了爆炸吧知识Bilibili 联合“美国国家地理”,悄悄出品了一部史诗级动物记录片,忍不住要推荐给大朋友小朋友们——《未至之境》。这部纪录片由B站和国家地理联合创作,从绵延万里的山脉高原到枝繁叶茂的雨林竹海&…

ssh无密码公钥登陆

根据自己的发展历程,回忆一下,之前接触到的都是密码用户登录,自从到了好孩子集团,感受了证书登录的情况,刚开始很抵触,超不习惯,而且当时对原理不了解,总是出错,给运维的…

使用OpenTelemetry搭配Zipkin构建NetCore分布式链路跟踪 | WebAPI + gRPC

OpenTelemetry介绍OpenTelemetry是一组标准和工具的集合,旨在管理观测类数据,如 trace、metrics、logs 等。通过标准化不同的应用程序和框架如何收集和发出可观察性遥测数据,OpenTelemetry旨在解决这些环境带来的一些挑战。OpenTelemetry包括…

C语言 linux环境基于socket的简易即时通信程序

转载请注明出处:http://www.cnblogs.com/kevince/p/3891033.html ——By Kevince 最近在看linux网络编程相关,现学现卖,就写了一个简易的C/S即时通信程序,代码如下: head.h 1 /*头文件,client和server…

腾讯云cloudlite认证_【腾讯云】考个证...大数据开发工程师认证

作为一个大数据行业的从业者,考个腾讯云大数据开发工程师认证总比考个消防证 easy 吧…?关于考这个认证的意义其实主要在于全面复习一下大数据相关的知识点,另外有个腾讯云的认证,也许大概也会对你找工作有点帮助的吧?…

Logistic回归主要应用领域

主要应用领域 1、预测是否发生、发生的概率(流失、客户响应等预测) 如果已经建立了logistic回归模型,则可以根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大。 2、影响因素、危险因素分析&#xff…

Java Process.waitFor()这个方法是做什么用的

java.lang.Process.waitFor()方法将导致当前的线程等待,如果必要的话,直到由该Process对象表示的进程已经终止。此方法将立即返回,如果子进程已经终止。如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出。public…

kernel shell bash简介

还记得我们在Linux启动的时候。首先会启动内核 (kernel),内核是一段计算机程序,这个程序直接管理管理硬件,包括CPU、内存空间、硬盘接口、网络接口等等。所有的计算机操作都要通过内核传递给硬件。为了我们方便调用内核,我们将内核…

最高调恋爱方式,简直“公开处刑”......

1 我拿到了剑桥的offer...▼2 当空乘专业第一次穿高跟鞋...▼3 是我没错了▼4 笑出鹅叫▼5 现场表演一下,一秒落汤鸡!▼6 那个红/黄毛起来一下!▼7 最高调的恋爱方式▼7 数学可以多好玩▼你点的每个赞,我都认真当成了喜欢

oracle6

概要文件管理用户资源create profile profile_name limitselect * from dba_profiles where profile order by limit;口令管理select * from dba_profiles where profile and resource_typepassword口令验证函数直接执行概要文件D:\app\Administrator\product\11.1.0\db_1\RDBM…

C# 扩展集合ObservableCollection使集合在添加、删除、值变更后触发事件

01—概述ObservableCollection继承了INotifyPropertyChanged接口,在属性变更时可以通知界面,当我把ObservableCollection集合绑定到界面的DataGrid后,我希望在界面修改表格数值后,可以触发一个 事件来验证我界面设定数据的有效性&…

数据挖掘算法之决策树算法总结

机器学习中,决策树是一个预测模型;它代表的是对象属性值与对象值之间的一种映射关系。树中每个节点表示某个对象,每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应具有上述属性值的子对象。决策树仅有单一输出&#xff1…

微软职位内部推荐-SDEII

微软近期Open的职位:JD如果你想试试这个职位,请跟我联系,我是微软的员工,可以做内部推荐。发你的中英文简历到我的邮箱:Nicholas.lu.mail(at)gmail.com转载于:https://www.cnblogs.com/DotNetNuke/p/3891832.html

win7升级win10正式版_win7告退在即,如何升级到win10?

Win7即将停更,小伙伴们也差不多要进行自己系统的更新啦,今天小白就教大家如何将Win7升级到Win10第一步:首先在官网 www.xiaobaixitong.com 下载“小白软件”第二步:选好我们要下载的系统,然后安装即可。第三步&#xf…