位与:一个数1的结果
在计算机中,位与的符号是&,运算过程是false&false=false, true&false=false, true&true=true
故任何一个数&1的结果有:
0&1=0
1&1=1
2&1=0
3&1=1
…
…
…
1234&1=0
4321&1=1
可以看出一个奇数(十进制)
位与1
的结果是1
,一个偶数(十进制)
位与1
的结果是0
我们分析一下几个例子,3和987都是十进制数:
3&1
在计算过程是:
11
01
—
01
所以: 3&1=01=1
987&1
在计算过程是:
1111011011
0000000001
----------------
0000000001
所以: 987&1=0000000001=1
任何一个数
位与1,则1会在前面补上相应个0,然后和那个数
进行位与计算
,所以结果不是0就是1,因此,我们常常用一个数
&1
来判断一个数
是奇数或偶数。
实例:
1,比如在数据库中,我们获取所有奇数的id,就可以直接:
select id from mytable where id&1;
2,在编程中判断一个数是否为奇数:
int number = 789;
if (number & 1) {print('此数为奇数')
} else {print('此数为偶数')
}
小结
位运算是最靠近计算机底层的,所以计算效率特别高,尤其在数据量超大的情况下,优势很明显。
拓展
与或运算常常用于判断奇偶
移位运算常常用于倍数运算
位与:一个数1的结果相关推荐
- 位运算——按位与()、按位或(|)、按位异或(^)
1.按位与(&) 两个数进行按位与运算时,先将其分别换算成二进制数再进行运算,按位与简单的理解就是同位上的两个数只有同为真时则真,一假则假,1为真,0为假 17将与23进行按位与(&) ...
- [BZOJ5312]冒险(势能线段树)
[BZOJ5312]冒险 维护一个长度为 n 的序列,支持 m 次操作,操作包括区间按位或一个数,区间按位与一个数,以及查询区间最大值. 线段树每个节点上维护区间与.区间或和区间最大值. 如果一次操作 ...
- 查找算法系列之复杂算法:哈希查找
查找算法系列之复杂算法:哈希查找 眼下为止已经介绍了顺序查找.二分查找.分块查找.二叉排序树.见作者之前的文章: http://blog.csdn.net/u010025211/article/det ...
- android图片资源加密解密,[原创]cocos2d游戏图片资源解密
0x00 序 之前遇到过一个有意思的cocos2d游戏.里面的图片资源全都加密了.今天突然想起来.整理一下发出来. 0x01 开干 ak 打开软件 发现是cococs游戏,并且资源文件里面全是mp3, ...
- matlab+cummean,matlab常用操作备忘(2)
北京理工大学 20981 陈罡 (22)专门图形绘制 area :一个二维图形的填充 box :控制轴的边界 comet :二维彗星轨迹图 compass :绘制从原点出 ...
- matlab中bitget函数用法_Matlab函数大全
目录 1.时间日期函数................................ ................................ ....................... ...
- 计算机基础知识---位运算的简介
Author:baiyucraft BLog: baiyucraft's Home 1.什么是位运算 稍微有点计算机基础的都知道一点,在程序中的所有数在计算机内存中都是以二进制的形式存储的.位运算 ...
- Java学习笔记——从零开始(2018.04.22已更新)
2018.04.08 --Java开发入门-- -计算机基本概念- •什么是计算机 计算机是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算 ...
- matlab中集合的表示,Matlab常用命令集合
1.常用命令-->管理命令和函数 addpath添加目录到MATLAB搜索路径doc在Web浏览器上现实HTML文档help显示Matlab命令和M文件的在线帮助helpwin helpdesk ...
- refresh matlab path,Matlab 习惯常用命令收集 转
(1)管理命令和函数 addpath :添加目录到MATLAB搜索路径 doc :在Web浏览器上现实HTML文档 help :显示Matlab命令和M文件的在线帮助 helpwin helpdesk ...
最新文章
- java 文件拷贝文件怎么打开_java如何拷贝文件
- 1-Swift中的Struct 和 Class
- QGC添加显示多架无人机飞行轨迹
- AttributeError系列之:AttributeError: module 'scipy.misc' has no attribute 'imread'报错问题
- java 图形处理库_java中处理图片的类库
- JAVA自学笔记23
- java标签用法详解_介绍一个javaWeb自定义标签的用法详解
- 实现div在固定区域跟随鼠标移动点击拖动而产生的变化
- 在线工具-程序员的工具箱-在线Cron表达式生成器
- Flutter进阶—实现动画效果(八)
- Linux中级之ansible概念及hoc命令行调用模式
- 解决gitlab内存占用过多的问题
- vmware的xp虚拟机更改虚拟硬盘序列号
- android 获取软件签名工具,获取Android应用签名的几种方式
- 训练指南 UVALive - 5713(最小生成树 + 次小生成树)
- (1) 微信公众号注册
- 银行手机APP软件做性能测试吗,浅谈银行开放平台应用系统性能测试
- 舔狗不会永远舔你的爱答不理和高冷
- python dictionary怎么用_python Dictionary字典使用
- 软件评测和测试国家现行标准
热门文章
- 包引入报错 ImportError: cannot import name ‘best_partition‘ from ‘community‘
- ADB操作手机的一个界面小工具(python实现)
- linux 服务器的性能考核指标QPS、TPS、RT、Load、PV、UV
- BHQ-1 amine,1308657-79-5,BHQ染料通过FRET和静态猝灭的组合工作
- 2014 C专科C组第五题 套娃
- PPTP配置实例(HiPER ReOS 2008 ×××配置手册)
- RabbitMq 有啥用
- linux so_linger,linux系统编程之getsockopt/setsockopt 函数
- 小米1S MIUI V5刷回V4教程
- java 中0x的数值表示方式 本质上是什么意思?