作者:力扣(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)

【位运算】代码中的常用操作相关推荐

  1. 逆向趣事:那些封印在代码中的骚操作

    在逆向一些正常或恶意软件时,有时会遇到一些作者封印在代码中的骚操作,有趣又另类,甚至可以作为检测规则来应用,今天就来聊聊这些骚操作. 01 - 闲趣型 2012年的时候,Fireye捕获到一个Java ...

  2. 位运算java_Java中的位运算

    Java中的位运算,说实话,工作了两年的时间里,从来没有用过一次,因为平时都是些的是业务代码,很少接触比较底层的东西,我记得第一次在代码中看到还是在HashMap的Hash算法中看到的,这次重拾Jav ...

  3. java取余位运算_Java中对于位运算的优化以及运用与思考

    引言 随着JDK的发展以及JIT的不断优化,我们很多时候都可以写读起来易读但是看上去性能不高的代码了,编译器会帮我们优化代码.之前大学里面学单片机的时候,由于内存以及处理器性能都极其有限(可能很多时候 ...

  4. 位运算的一些有用的操作

    位运算的骚操作(一)之四则运算 ​ 可以这样说,位运算是我们刚开始学计算机就会接触到的一种东西.那么位运算这么常见,我们是否可以使用它来做一些骚操作呢? 使用的运算符包括下面(java还有一个> ...

  5. 地税 8位计算机代码,地税网上申报操作手册

    <地税网上申报操作手册>由会员分享,可在线阅读,更多相关<地税网上申报操作手册(5页珍藏版)>请在人人文库网上搜索. 1.地税网上申报操作手册网上申报操作手册 一 登录系统1. ...

  6. bool python 运算_python中的布尔操作

    点击以下链接可以快速访问全部我发表的Python相关文章: Nick WU:Nick WU的python文章目录(持续更新中...)​zhuanlan.zhihu.com 1. Python中的布尔值 ...

  7. python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  8. MYSQL 中 SQL 常用操作

    SQL常用操作大全 1.SQL简单的操作 -- 常见SQL-- 查询 SELECT id,username,password FROM admin;-- 插入 INSERT INTO admin(us ...

  9. java int位运算_java中int的表示方法,位运算的解析

    随着时代的不断发展,越来越多的人开始投入到java的学习当中来.今天就来为大家介绍java中int的表示方法以及位运算的内容有哪些一起来看看吧. 首先我们需要知道的是,在java中,int是使用32位 ...

最新文章

  1. 【Qt】ubuntu QtCreator的pro文件中使用pkg-config
  2. ZooKeeper布式集群安装及使用
  3. unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass
  4. 明年的方向是JAVA+SAP
  5. 【JAVA 第五章 】课后习题 奇数排前
  6. Java工程带库编译运行
  7. ubuntu adduser
  8. PHP开发的AZ自动发卡网站系统源码
  9. 身份证号判断和年龄计算
  10. 计算机考研英语一历年国家线,历年考研英语国家线
  11. 姜小白的Python日记Day5 字符串与字典
  12. P3669 [USACO17OPEN]Paired Up S 贪心+双指针
  13. 管理系统之KTV点歌系统
  14. 计算机主机配置讲解,组装机电脑配置单讲解
  15. 运维实操——日志分析系统ELK(中)之logstash采集数据、伪装rsyslog、多行过滤、grok切片
  16. 测试手机速度的软件叫什么,怎样用手机测wifi网速 手机测网速用什么软件
  17. RHEL6.9静默安装Oracle11204
  18. 【毕设选题】最新51单片机毕业设计项目集合 - 500例
  19. linux dhcp认证,如何让linux dhcp server同时支持option 60和option 82认证
  20. stc89c52c语言开发,STC89C52单片机开发板入门教程——简介(致雅科技)

热门文章

  1. 独家定制「炼丹贴纸」免费送,让你成为实验室最靓的仔
  2. 无线通信AI大赛正式开放评测,50万大奖等你霸榜!
  3. 正则表达式与神经网络的深度融合
  4. CVPR 2019 | 实体零售场景下密集商品的精确探测
  5. java oci_java oracle oci方式连接
  6. paramterType和resultType的区别
  7. spring boot+mybatis执行controller中拼接后的SQL
  8. CG CTF WEB AAencode
  9. Spring-学习笔记07【银行转账案例】
  10. 计算机考研【211 计算机专业院校 官方排名】教育部 第4次“计算机专业”学科评估