如何打印一个有符号的整数作为二进制补码python的十六进制数字? [英] How to print a signed integer as hexadecimal number in two's complement with python?

查看:1305
本文介绍了如何打印一个有符号的整数作为二进制补码python的十六进制数字?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个负整数(4字节),我希望它的二进制补码表示的十六进制形式。

I have a negative integer (4 bytes) of which I would like to have the hexadecimal form of its two's complement representation.

>>> i = int("-312367")
>>> "{0}".format(i)
'-312367'
>>> "{0:x}".format(i)
'-4c42f'

但我希望看到FF ...

But I would like to see "FF..."

推荐答案

以下是一种方法(适用于16位数字):

Here's a way (for 16 bit numbers):

>>> x=-123
>>> hex(((abs(x) ^ 0xffff) + 1) & 0xffff)
'0xff85'

(可能不是最优雅的方式,但)

(Might not be the most elegant way, though)

这篇关于如何打印一个有符号的整数作为二进制补码python的十六进制数字?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆