计算机基础知识---位运算的应用
Author:baiyucraft
BLog: baiyucraft’s Home
前置学习:
- 计算机基础知识—位运算的简介
在了解位运算后,我们要明白一点:为什么要学习位运算呢。其实很重要的一个原因是因为位运算速度极其快,在写算法题或者程序时,将一些操作换成位运算,会大大提升程序的性能。以下就是一些位运算的应用
1.位运算实现乘除:
原理: 右移1位,相当于整除2;a左移1位,相当于乘以2
a >> n # 将a整除2^n
a << n # 将a乘以2^n
2.位运算判断奇偶
原理: 在二进制中,奇数的最后一位必为1,偶数的最后一位必为0,所以可以通过与1做与运算来判断奇偶
nnnn nnnn nnnn nnn1 --- 奇数& 0000 0000 0000 0001 --- 1——————————————————————0000 0000 0000 0001 --- 1nnnn nnnn nnnn nnn0 --- 偶数& 0000 0000 0000 0001 --- 1——————————————————————0000 0000 0000 0000 --- 0
代码:
if a & 1:# 奇数
else:# 偶数
3.位运算交换两数
原理: 数a与数a做异或运算结果为0,数a与0做异或运算结果为a。所以位运算也能不使用临时变量交换两数,效率比普通运算高
nnnn nnnn nnnn nnnn --- a
^ nnnn nnnn nnnn nnnn --- a
——————————————————————0000 0000 0000 0000 --- 0nnnn nnnn nnnn nnnn --- a
^ 0000 0000 0000 0000 --- 0
——————————————————————nnnn nnnn nnnn nnnn --- a
代码:
# 普通运算
def swap(a, b):a = a + bb = a - b # b = a + b - b = aa = a - b # a = a + b - a = b# 位运算
def swap(a, b):a = a ^ b b = b ^ a # b = b ^ a ^ b = (b ^ b) ^ a = 0 ^ a = aa = a ^ b # a = a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b
4.更新ing
计算机基础知识---位运算的应用相关推荐
- 计算机基础知识---位运算的简介
Author:baiyucraft BLog: baiyucraft's Home 1.什么是位运算 稍微有点计算机基础的都知道一点,在程序中的所有数在计算机内存中都是以二进制的形式存储的.位运算 ...
- c语言10以内位运算,C语言基础知识--位运算
1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...
- 计算机系统组成及工作原理PPT,第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示....
Presentation on theme: "第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示."- Presen ...
- 世界上第一台计算机采用哪位科学家,计算机基础知识试题及答案解析
下面是小编为你带来的计算机基础知识试题及答案解析 ,欢迎阅读. 1.1946年诞生的世界上公认的第一台电子计算机是( ). A)UNIVAC-I B)EDVAC C)ENIAC D)IBM650 [答 ...
- 第一台电子计算机采用哪位科学家,计算机基础知识试题及答案解析
计算机基础知识参考试题及答案解析 一.单选题 1.1946年诞生的世界上公认的第一台电子计算机是( ). A)UNIVAC-I B)EDVAC C)ENIAC D)IBM650 [答案]C) [解析] ...
- 世界上第一代电子计算机每秒运算次数,计算机基础知识讲稿一
计算机基础知识讲稿 计算机基础知识讲稿(一) 一 信息与信息社会 信息:信息是指用语言.文字.声音.图象.符号.数字等为载体所表达的事物特征,是对事物存在方式.运行状态.相互联系特征的表达与描述. 信 ...
- 计算机基础知识--标准16位I/O设备的ISA总线周期
计算机基础知识--标准16位I/O设备的ISA总线周期 写在前面的话:英语水平也有限,错误在所难免,请各位大牛不吝赐教,完善翻译.便于大家受益,在此谢过!(翻译选自<ISA System Arc ...
- 第一台电子计算机采用哪位科学家,计算机基础知识参考试题及答案解析
大学计算机考试习题 计算机基础知识参考试题及答案解析 一.单选题 1.1946年诞生的世界上公认的第一台电子计算机是( ). A)UNIVAC-I B)EDVAC C)ENIAC D)IBM650 [ ...
- 计算机wrod初级考试题及答案,计算机基础知识+Word基础知识+Excel基础知识试题答案解析.doc...
文档介绍: 计算机基础知识+ Word基础知识+ Excel基础知识 第一部分 一.单项选择题 1.世界上第一台电子数字计算机取名为( ). A.UNIVAC B.EDSAC C.E ...
最新文章
- 前沿丨DeepMind提出神经元删除法:通过理解每个神经元来理解深度学习
- 【Python学习系列二十六】networkx库图最短路径求解
- 内嵌WEB服务器加载原理
- 使用Grunt搭建自动化的web前端开发环境-完整教程
- 用python画万花筒写轮眼_万花筒写轮眼画法教程
- 【必看】Linux 下的 TCP参数优化
- 站在BERT肩膀上的NLP新秀们:XLMs、MASS和UNILM
- 学了半天,import 到底在干啥?
- Android App列表之游标ListView(索引ListView)
- 2012 不宜进入的三个技术点(下)
- ISA Server 2006 升级到 TMG2010
- loadrunner性能测试——第一步 录制脚本(中文版)
- P1251 餐巾计划问题 费用流
- Matlab中break语句
- wordpress登录美化css,wordpress的XIU主题显示美化css配置
- [Excel]vlookup的内在逻辑以及模糊检索
- MATLAB使用GPU加速计算
- python放大代码放大_Python中的放大缩小功能
- [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) —— 数据的持久化——使用MongoDB存储爬取的数据
- 数据库的增删查改(全部重点知识一篇整合,包括数据库查询的进阶内容)