位运算 | 学习笔记

简介: 快速学习 位运算

开发者学堂课程【Python入门 2020年版位运算】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10255


位运算


内容介绍

一、应用及规则

二、分类

三、练习


一、应用及规则

1.应用:python 中运用较少,C 语言早期运用较多,属于偏底层的运算。

 

2.规则:按位运算符是把数字看作是二进制来进行计算。


二、分类

1. &按位与运算

1)规则:0&0=00&1=01&0=01&1=1

即:两位同时为“1”,结果才为“1”,否则为0【有00

(2)例:

a=23

b=15

print(a&b)=7

首先将所有数字转化为二进制

23转化为二进制为00010111

15转化为二进制为00001111

根据同为1则为1,否则为0可得出结果为00000111

结果转化为十进制则为数字7

2.|按位或

1)规则:0|0=00|1=11|0=11|1=1

即 :参加运算的两个对象只要有一个为1,其值为1【有11

2)例:

a=23

b=15

print(a|b)=31

首先将所有数字转化为二进制

23转化为二进制为00010111

15转化为二进制为00001111

根据有11可得出结果为00011111

结果转化为十进制为数字31

3.^按位异或

1)规则:0^0=00^1=11^0=11^1=0

即:参加运算的两个对象,如果两个相应位为“异”(值不同),

则该位结果为1,否则为0【同01

2)例:

a=23

b=15

print(a^b)=24

首先将所有数字转化为二进制

23转化为二进制为00010111

15转化为二进制为00001111

根据相同为0,不同为1可得出结果为00011000

结果转化为十进制为数字24

4.~按位取反

涉及到负数的二进制,此处不做讲解。

5.<<按位左移

1)规则:一个数左移n位相当于这个数乘以2n 次方。

2)例:

x=5

print(x<<2)=20

首先将5转化为二进制为0101

左移2位即在右边补两位数字0得出结果为010100

x=5

print(x<<3)=40

简便方法可知5左移3位等于5乘以2的三次方得出结果为40

6.>>按位右移

1)规则:一个数右移n位相当于这个数除以2n 次方。

2)例:

y=15

print(y>>2)=3

首先将15转化为二进制为1111

右移两位会丢失数据,即0011

转化为十进制为数字3


三、练习

1.题目:难度较高,只需要能看懂代码即可,不要求写出。

使用位运算获取到十六进制颜色0xF0384E RGB 值,以十进制输出。

2. 方法:使用位运算算出对应的数值

F0转化为十进制为240,赋值给 red

38转化为十进制为56,赋值给 green

4E 转化为十进制为78,赋值给 blue

在填充工具中设置  

red=0xF0

green=0x38

blue=0x4E 

注:所有东西掌握后可以研究此题,不必浪费太多时间在该题目上。

相关文章
|
11月前
|
大数据 数据处理 开发者
Python 判断for循环最后一次
Python 判断for循环最后一次
189 4
|
关系型数据库 MySQL Docker
查看docker run 时启动命令
查看docker run 时启动命令
311 0
函数\judgeprime
函数\judgeprime
113 5
|
网络协议 Linux 测试技术
Linux习题6
Linux习题6
60 0
|
设计模式 自然语言处理 JavaScript
前端AST详解,手写babel插件(二)
前端AST详解,手写babel插件
434 0
前端AST详解,手写babel插件(二)
|
Java Unix Linux
Linux vi/vim
Linux vi/vim
104 0
|
存储 算法 关系型数据库
分布式事务的 21 种武器 - 6
分布式事务的 21 种武器 - 6
124 0
|
Go
Go语言错误处理操作宝典,技多不压身!
Go语言错误处理操作宝典,技多不压身!
103 0
|
缓存 算法 C#
【C#本质论 十】合式类型(一)重写Object成员及操作符重载(下)
【C#本质论 十】合式类型(一)重写Object成员及操作符重载(下)
183 0