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

计算机基础知识---位运算的应用相关推荐

  1. 计算机基础知识---位运算的简介

    Author:baiyucraft BLog: baiyucraft's Home 1.什么是位运算   稍微有点计算机基础的都知道一点,在程序中的所有数在计算机内存中都是以二进制的形式存储的.位运算 ...

  2. c语言10以内位运算,C语言基础知识--位运算

    1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...

  3. 计算机系统组成及工作原理PPT,第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示....

    Presentation on theme: "第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示."- Presen ...

  4. 世界上第一台计算机采用哪位科学家,计算机基础知识试题及答案解析

    下面是小编为你带来的计算机基础知识试题及答案解析 ,欢迎阅读. 1.1946年诞生的世界上公认的第一台电子计算机是( ). A)UNIVAC-I B)EDVAC C)ENIAC D)IBM650 [答 ...

  5. 第一台电子计算机采用哪位科学家,计算机基础知识试题及答案解析

    计算机基础知识参考试题及答案解析 一.单选题 1.1946年诞生的世界上公认的第一台电子计算机是( ). A)UNIVAC-I B)EDVAC C)ENIAC D)IBM650 [答案]C) [解析] ...

  6. 世界上第一代电子计算机每秒运算次数,计算机基础知识讲稿一

    计算机基础知识讲稿 计算机基础知识讲稿(一) 一 信息与信息社会 信息:信息是指用语言.文字.声音.图象.符号.数字等为载体所表达的事物特征,是对事物存在方式.运行状态.相互联系特征的表达与描述. 信 ...

  7. 计算机基础知识--标准16位I/O设备的ISA总线周期

    计算机基础知识--标准16位I/O设备的ISA总线周期 写在前面的话:英语水平也有限,错误在所难免,请各位大牛不吝赐教,完善翻译.便于大家受益,在此谢过!(翻译选自<ISA System Arc ...

  8. 第一台电子计算机采用哪位科学家,计算机基础知识参考试题及答案解析

    大学计算机考试习题 计算机基础知识参考试题及答案解析 一.单选题 1.1946年诞生的世界上公认的第一台电子计算机是( ). A)UNIVAC-I B)EDVAC C)ENIAC D)IBM650 [ ...

  9. 计算机wrod初级考试题及答案,计算机基础知识+Word基础知识+Excel基础知识试题答案解析.doc...

    文档介绍: 计算机基础知识+ Word基础知识+ Excel基础知识 第一部分 一.单项选择题 1.世界上第一台电子数字计算机取名为(    ). A.UNIVAC    B.EDSAC    C.E ...

最新文章

  1. 前沿丨DeepMind提出神经元删除法:通过理解每个神经元来理解深度学习
  2. 【Python学习系列二十六】networkx库图最短路径求解
  3. 内嵌WEB服务器加载原理
  4. 使用Grunt搭建自动化的web前端开发环境-完整教程
  5. 用python画万花筒写轮眼_万花筒写轮眼画法教程
  6. 【必看】Linux 下的 TCP参数优化
  7. 站在BERT肩膀上的NLP新秀们:XLMs、MASS和UNILM
  8. 学了半天,import 到底在干啥?
  9. Android App列表之游标ListView(索引ListView)
  10. 2012 不宜进入的三个技术点(下)
  11. ISA Server 2006 升级到 TMG2010
  12. loadrunner性能测试——第一步 录制脚本(中文版)
  13. P1251 餐巾计划问题 费用流
  14. Matlab中break语句
  15. wordpress登录美化css,wordpress的XIU主题显示美化css配置
  16. [Excel]vlookup的内在逻辑以及模糊检索
  17. MATLAB使用GPU加速计算
  18. python放大代码放大_Python中的放大缩小功能
  19. [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) —— 数据的持久化——使用MongoDB存储爬取的数据
  20. 数据库的增删查改(全部重点知识一篇整合,包括数据库查询的进阶内容)

热门文章

  1. XHR-XMLHttpRequest
  2. Windows下基础免杀技术
  3. 网管员必看:三款常见网管工具的对比
  4. 基于域控的SSO单点登录
  5. 自学网络安全,一般人我劝你放弃吧!
  6. 汇编获取CPU的id
  7. conflict 冲突
  8. jfinal的简单使用(一)
  9. [算法]Morse Code(摩斯密码)
  10. go中生成可执行文件