【位运算】代码中的常用操作
作者:力扣(LeetCode)
链接:https://www.zhihu.com/question/38206659/answer/736472332
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
位运算
- 1.【乘除2】
- 2.【交换两个数】
- 3.【判断奇偶性】
- 4.【正数变成负数,负数变成正数】
- 5.【求绝对值】
- 6.求高低位交换
- 7.二进制逆序
- 8.统计二进制中 1 的个数
- 9.【取模运算】
1.【乘除2】
int a = 2;
a >> 1; //【表示除2】
a << 1; //【表示乘2】
2.【交换两个数】
void swap(int a, int b)
{a ^= b;b ^= a;a ^= b;
}
3.【判断奇偶性】
if((a & 1)==0) //偶数
if((a & 1)==1) //奇数
4.【正数变成负数,负数变成正数】
int reversal(int a)
{return ~a + 1;
}
5.【求绝对值】
int abs(int a)
{int i = a >> 31;return i == 0 ? a : (~a + 1);
}
int abs2(int a)
{int i = a >> 31;return ((a^i) - i);
}
6.求高低位交换
unsigned short a = 34520;
a = (a >> 8) | (a << 8);
7.二进制逆序
unsigned short a = 34520;
a = ((a & 0xAAAA) >> 1) | ((a & 0x5555) << 1);
a = ((a & 0xCCCC) >> 2) | ((a & 0x3333) << 2);
a = ((a & 0xF0F0) >> 4) | ((a & 0x0F0F) << 4);
a = ((a & 0xFF00) >> 8) | ((a & 0x00FF) << 8);
8.统计二进制中 1 的个数
count = 0
while(a)
{ a = a & (a - 1); count++;
}
9.【取模运算】
a需>0且b为2的倍数
a % b == >a & (b - 1)
需n<2m
n%m ==> n-(m>n?0:m)
【位运算】代码中的常用操作相关推荐
- 逆向趣事:那些封印在代码中的骚操作
在逆向一些正常或恶意软件时,有时会遇到一些作者封印在代码中的骚操作,有趣又另类,甚至可以作为检测规则来应用,今天就来聊聊这些骚操作. 01 - 闲趣型 2012年的时候,Fireye捕获到一个Java ...
- 位运算java_Java中的位运算
Java中的位运算,说实话,工作了两年的时间里,从来没有用过一次,因为平时都是些的是业务代码,很少接触比较底层的东西,我记得第一次在代码中看到还是在HashMap的Hash算法中看到的,这次重拾Jav ...
- java取余位运算_Java中对于位运算的优化以及运用与思考
引言 随着JDK的发展以及JIT的不断优化,我们很多时候都可以写读起来易读但是看上去性能不高的代码了,编译器会帮我们优化代码.之前大学里面学单片机的时候,由于内存以及处理器性能都极其有限(可能很多时候 ...
- 位运算的一些有用的操作
位运算的骚操作(一)之四则运算 可以这样说,位运算是我们刚开始学计算机就会接触到的一种东西.那么位运算这么常见,我们是否可以使用它来做一些骚操作呢? 使用的运算符包括下面(java还有一个> ...
- 地税 8位计算机代码,地税网上申报操作手册
<地税网上申报操作手册>由会员分享,可在线阅读,更多相关<地税网上申报操作手册(5页珍藏版)>请在人人文库网上搜索. 1.地税网上申报操作手册网上申报操作手册 一 登录系统1. ...
- bool python 运算_python中的布尔操作
点击以下链接可以快速访问全部我发表的Python相关文章: Nick WU:Nick WU的python文章目录(持续更新中...)zhuanlan.zhihu.com 1. Python中的布尔值 ...
- python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)
这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...
- MYSQL 中 SQL 常用操作
SQL常用操作大全 1.SQL简单的操作 -- 常见SQL-- 查询 SELECT id,username,password FROM admin;-- 插入 INSERT INTO admin(us ...
- java int位运算_java中int的表示方法,位运算的解析
随着时代的不断发展,越来越多的人开始投入到java的学习当中来.今天就来为大家介绍java中int的表示方法以及位运算的内容有哪些一起来看看吧. 首先我们需要知道的是,在java中,int是使用32位 ...
最新文章
- 【Qt】ubuntu QtCreator的pro文件中使用pkg-config
- ZooKeeper布式集群安装及使用
- unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass
- 明年的方向是JAVA+SAP
- 【JAVA 第五章 】课后习题 奇数排前
- Java工程带库编译运行
- ubuntu adduser
- PHP开发的AZ自动发卡网站系统源码
- 身份证号判断和年龄计算
- 计算机考研英语一历年国家线,历年考研英语国家线
- 姜小白的Python日记Day5 字符串与字典
- P3669 [USACO17OPEN]Paired Up S 贪心+双指针
- 管理系统之KTV点歌系统
- 计算机主机配置讲解,组装机电脑配置单讲解
- 运维实操——日志分析系统ELK(中)之logstash采集数据、伪装rsyslog、多行过滤、grok切片
- 测试手机速度的软件叫什么,怎样用手机测wifi网速 手机测网速用什么软件
- RHEL6.9静默安装Oracle11204
- 【毕设选题】最新51单片机毕业设计项目集合 - 500例
- linux dhcp认证,如何让linux dhcp server同时支持option 60和option 82认证
- stc89c52c语言开发,STC89C52单片机开发板入门教程——简介(致雅科技)
热门文章
- 独家定制「炼丹贴纸」免费送,让你成为实验室最靓的仔
- 无线通信AI大赛正式开放评测,50万大奖等你霸榜!
- 正则表达式与神经网络的深度融合
- CVPR 2019 | 实体零售场景下密集商品的精确探测
- java oci_java oracle oci方式连接
- paramterType和resultType的区别
- spring boot+mybatis执行controller中拼接后的SQL
- CG CTF WEB AAencode
- Spring-学习笔记07【银行转账案例】
- 计算机考研【211 计算机专业院校 官方排名】教育部 第4次“计算机专业”学科评估