1  十六进制转十进制

1)str(a)

若a本身是以十六进制表示的,那么直接打印出来的是十进制的数值。str()可以将十六进制的数强制转换成十进制的字符串:

num = 0xFFFF
print('num的值为', num)
print('num的类型为', type(num))
print('str(0xFFFF)的值为', str(num))
print('str(0xFFFF)的类型为', type(str(num)))

运行结果:

2)int(a, 16)

其中,a必须是字符串格式。这种方式适用于数值本身是以字符串形式存储的情况。例如以下两段代码,只有第二段的结果是正确的。

num = 0xFFFF
print(int(str(num)), 16)num = '0xFFFF'
print(int(num), 16)

运行结果:

2  十进制转十六进制

hex(a)

其中a为int整型,而转换结果为字符串类型:

print(hex(65535))
print(type(hex(65535)))

运行结果:

3  由补码求原码

当得到的4位16进制数以补码形式呈现时,需要我们对其再作处理,才能得到含符号的十进制数据:

data = []
msg = ['0x0124', '0xFFB3', '0xB75E', '0x005D']
for i in range(len(msg)):data.append(msg[i])data[i] = int(data[i], 16)if (data[i] & 0x8000 == 0x8000):data[i] = -((data[i] - 1) ^ 0xFFFF)     # 由补码求得原码,一定记得取反得是'^ 0xFFFF',不能是'^ 0x7FFF'

运行结果:

而通过在线原码补码转换器可以验证,0xFFB3和0xB75E的原码分别位-77和-18594,正数的补码即原码,0x0124和0x005D的原码分别为292和93。结果正确。

python十六进制和十进制相互转换以及由补码求原码相关推荐

  1. 已知补码求原码(真值)

    已知补码如何求原码(真值)~ 1.当补码最高位为0时 因为最高位为0,即该数是正数,正数的原码.反码.补码都是一样的. 所以该补码即是原码. 例如:[X]补=01111111求真值. 解:因为最高位为 ...

  2. 1.python实现二进制补码求原码

    def ori2com(ori_str):"""将原码字符串 -> 补码字符串:param ori_str:原码字符串:return:补码字符串"&quo ...

  3. 原码 反码 换算工具 补码_原码和补码的换算(原码反码补码转换工具)

    [-3]反=[10000011]反=11111100 原码 反码 负数的补码是将其原码除符号位之. 两个说法都没有错,我们举个例子来看看就明白了:1.10001的补码是取反后在再加1,也就是11110 ...

  4. 小程序 正整数与char(character)的相互转换,十六进制与十进制相互转换

    人生无常,大肠包小肠! 1.正整数转字符,String.fromCharCode(arr[i]),arr[i] 为正整数 onLoad() {var array = [85, 4, 17, 0, 80 ...

  5. 原码 反码 换算工具 补码_原码,反码,补码相互转换在线计算器_三贝计算网_23bei.com...

    本计算软件适用于10进制.16进制.2进制数值原码.反码.补码的计算. 输入已知数据变量.选择已知变量的类型(支持原码(10进制).原码(16进制).原码(2进制).反码(2进制).反码(16进制). ...

  6. 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)

    我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...

  7. 二进制 补码 反码 原码

    1.二进制补码的计算方法 二进制的补码计算非常简单,各种教材中也经常使用二进制来说明源码.反码与补码三者的关系,掌握一定基础的人都知道一下规则: 1.1 原码 最高位为符号位,0表示正数,1表示负数. ...

  8. 原码、反码、补码及补码转原码

    1. 什么是原码.反码.补码? 计算机要使用某种编码方式存储 原码, 反码, 补码是机器存储某个具体数字的编码 计算机底层存储的数据都是二进制形式的补码 对于一个正数来说,原码.反码.补码一致 对于一 ...

  9. 计算机补码的简单理解(补码与原码之间的转换)

      补码是计算机用来表示负数的方式,在有符号运算时才有意义,所以原码应该是有符号位的.本文可以帮助你理解补码与原码间的映射与变换. 第一步:简单表示   首先:为了简单起见我们取三位二进制数: 二进制 ...

最新文章

  1. 西安理工大学计算机专业毕业,西安理工大学什么专业好找工作?毕业工资大概多少?答案在这里...
  2. 让Sql Server也能出现如VS一样的智能提示工具--资源更新
  3. Lync Server 2010标准版系列PART6:启用Lync
  4. 普通索引 唯一索引 主键索引 候选索引
  5. Redis是单线程为什么还那么快?
  6. (转)[Cocoa]深入浅出 Cocoa 之 Framework
  7. 菜鸟学Linux - bash的配置文件
  8. IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(一)
  9. Android HAL
  10. 物联网来了,智能城市离我们还有多远?
  11. 基于Java+SpringBoot+mybatis+vue+element实现旅游管理系统
  12. 用 “普通话” 讲算法之 VIBE算法
  13. Vector CANoe Option Car2X利用Car2X场景编辑器创建车联网交通场景与应用示例剖析
  14. bitcode 是什么_secured是什么意思 Secured borrowings是什么意思
  15. 打造我们自己的数字图书馆
  16. 用Python实现数据筛选与匹配
  17. CSP-S 2020 儒略日
  18. libco源码解析(2) 创建协程,co_create
  19. centos7终端怎么改字体和背景颜色之类的
  20. uniapp使用横竖屏显示样式错乱问题。

热门文章

  1. Windows 安装 Android Studio
  2. 2020.7 Hexo手把手教程(还带视频教程)
  3. java 求1000以内的所有素数
  4. 基于最小二乘支持向量机(LS-SVM)进行分类、函数估计、时间序列预测和无监督学习附Matlab代码
  5. 爬虫逆向基础,认识 SM1-SM9、ZUC 国密算法
  6. C++Primer第五版——习题答案+详解(完整版)
  7. 情感驿站 | 如果这个世界真有奇迹,那一定是努力的另一个名字
  8. 树莓派4B安装snort3
  9. 局域网安全防护技术(内网)
  10. 火狐网页对话框_默认情况下,在Firefox中展开“添加书签”对话框