| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python学习打卡【Task1】位运算和原码,反码及补码 -> 正文阅读 |
|
[Python知识库]Python学习打卡【Task1】位运算和原码,反码及补码 |
一、学习知识点概要(review)
二、学习内容(record)1.原码、反码和补码 对于正数本身,其反码和补码都是本身
那么对于负数呢? 负数的反码就是最高位(符号位)不变,其余位取反
负数的补码就是反码+1
2.位运算 <<代表按位左移,>>代表按位右移 在我昨天第四模块中也对位运算进行一些反思 对于3>>2按位右移运算原则是,将00000011向右移两位,低位舍弃(舍弃11),高位补0(负数补1),则变成00000000,所以3>>2输出0 对于3<<2运算按位左移运算原则是,将00000011向左移两位,全部二进制数整体向左移,高位舍弃,低位补0,则变成00001100,所以3<<2输出12
对于按位运算,m<<n可以代表m乘以2的n次方,m>>n可以代表m除以2的n次方
因此<<和>>可以实现2的倍数运算 3.补充:位运算之异或运算的性质 异或运算:a^b,a与b不同,输出结果为1;a与b相同,则输出结果为0。 异或运算的性质:
从上面可以看出任何数与其本身异或运算的结果为0,;而任何数与0异或运算的结果为其本身 4.利用位运算实现整数集合 一个数的二进制表示可以看做是一个集合 如集合a={6,3,5,2}可以表示成0001101100即0b1101100; 元素与集合的应用:从集合中插入和删除,和判断某元素是否在集合中 插入新元素:
删除某元素
判断某元素是否在集合中
集合之间的操作: a 补 ? -> ~a a 交 b -> a & b a 并 b -> a | b a 差 b -> a & (~b) 5.Python中的bin()输出
可以看到bin(负数)输出的是它的正数的原码前加一个负号 三、学习问题与解答(analysis)LeetCode练习题:一开始利用位运算找出只出现一次的数字仍没有头绪 经上网查询,知道使用异或运算将数组内所有值取异或,最后出现的就是要找的数字。 原理:任何数与其本身异或为0;0与任何数异或为其本身;异或运算满足交换律和结合律 四、学习思考与总结(summary)task1的内容基本完成了,但还有些问题待复盘,希望再接再厉! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 13:49:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |