| |
|
开发:
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中的进制转换和位运算 -> 正文阅读 |
|
[Python知识库]Python中的进制转换和位运算 |
? 进制转换一般我们常见的进制有二进制,八进制,十进制,十六进制 话不多说,先看例子,实践是检验真理的唯一标准!
其输出结果分别为: 二进制? ? ? ? ??0b10010101 八进制? ? ? ? ??0o225 十六进制? ? ??0x95 需注意求进制时使用的函数依次为:bin(),oct(),hex()。另外,浮点型数据无法转进制。 下面再看一下,其他进制转十进制的例子。 ?给n赋值为? ?0x558? ,使用type函数可知其数据类型还是整型,不受进制影响。 由于在Python中bin(),求不出负数的二进制码,下面教大家手动计算。 已知正整数5,求其对应的负数的二进制码? 答:先写出5的二进制码,0101,取反-->1 1010,加一,结果为? ?1 1011? (第一个1是符号位)
先看一下几个常见位运算的运算符: &? ? ? ? ? 与运算 |? ? ? ? ? ?或运算 ^? ? ? ? ? 异或运算 ~? ? ? ? ? 取反运算 <<? ? ? ? 左移运算 >>? ? ? ? 右移运算 我们设n1=0b0110,n2=0b0010 n1 & n2? ? ? 计算时,相当于对其二进制各位进行与运算,结果为:0b0010 0 & 0? =0 0 & 1 = 0 1 &?1 = 1 n1 | n2? ? ? 计算时,相当于对其二进制各位进行或运算,结果为:0b0110 0 |?0? = 0 0 |?1 = 1 1 |?1 = 1 n1 ^?n2? ? ? 计算时,相当于对其二进制各位进行异或运算,结果为:0b0100 0 ^?0? = 0 0 ^?1 = 1 1 ^?1 = 0 以上三个位运算符在使用时,是两个数据的运算。当其数据类型为十进制整型时,需转化为二进制数据进行计算。 而取反,左移和右移的运算符只涉及到了一个数据的变换。 对于下面的三个取反计算,我们逐一进行讨论。
(1.)? ? ? ? ?n1 = 0b0110 ,取反即为 各位 0 转1 ,1 转 0? ? ? ? ? ?结果为 1 1001? ? 故若已知负数的二进制,要求十进制时。保留符号位为负数,再将后面的二进制,减一,取反,得十进制,带上符号位为负数 得:-7 (2.)? ? ? ?整数7 转为二进制 ,0111,取反--->1 1000,负数,输出结果应为十进制。 ? ? ?故按上题的计算方法,先减一,?0111,取反,1000 得:-8 (3.) 整数-4转为二进制,?即求4的补码(因为正数的补码就是负数的二进制表示) 4的原码? ? ?0 0100 4的反码? ? ?1 1011 4的补码? ? ?1 1100(此为-4的二进制表示) 取反符号 进行取反? ? ?0 0011 正数,直接出结果 3 总结:当取反后为正数时,直接输出十进制形式; ? ? ? ? ? ?当取反后为负数时,需进行? ?负数的二进制转十进制的运算 (根据上文中的方法可计算) 左移和右移 关于这两个运算符,较为简单,话不多讲,看素材。 n = 12? <<? 箭头向左,故为左移 n << 1是将12的二进制代码左移一个单位,即 1100 左移后 11000 ,结果为24(也可理解为n * 2) >>? 箭头向右,故为右移 n >>?1 是将12的二进制代码右移一个单位,即 1100 左移后 0110 ,结果为?6(也可理解为n /?2) 题外话:刚刚看了东京奥运会混双决赛,我们的昕雯组合不敌日本队,3:4落败,全程看的十分揪心,看完后也有些失落,希望接下来的男单女单不要再出什么意外了,东京奥运会中国队加油! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 14:55:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |