溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用hex()在python中轉換進制

發(fā)布時間:2020-12-14 09:38:07 來源:億速云 閱讀:278 作者:小新 欄目:編程語言

這篇文章主要介紹了怎么使用hex()在python中轉換進制,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

 運算中的兩種進制相信大家都不陌生,那就是十進制和十六進制。在操作中我們會根據不同的使用條件進行進制之間的轉換。這里小編最近學習了一個內置函數,是專門針對進制轉換使用的。

一、說明:

1. 函數功能將10進制整數轉換成16進制整數。

>>> hex(15)
'0xf'
>>> hex(16)
'0x10'

2. 如果參數x不是整數,則它必須定義一個返回整數的__index__函數。

# 未定義__index__函數
>>> class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
 
>>> 
>>> s = Student('Kim',10)
>>> hex(s)
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    hex(s)
TypeError: 'Student' object cannot be interpreted as an integer
 
# 定義__index__函數,但是返回字符串
>>> class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __index__(self):
        return self.name
 
>>> s = Student('Kim',10)
>>> hex(s)
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    hex(s)
TypeError: __index__ returned non-int (type str)
 
# 定義__index__函數,并返回整數
>>> class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __index__(self):
        return self.age
 
>>> s = Student('Kim',10)
>>> hex(s)
'0xa'

二、轉為十六進制(Hex)字符串

def getStringFromNumber(self,size,value):
        """
        轉為十六進制(Hex)字符串
        :param size:
        :param value:
        :return:
        """
        size=int(size)
        value=int(value)
        by = bytearray([])
        for i in range(1,size+1):
            val = value >> 8 * (size - i) & 255
            by.append(val)
        val = by.hex()
        print("===============================")
        print("%s轉為%s個字節(jié)十六進制(Hex)字符串:%s"%(value,size,val))
        print("===============================")
        return val
getStringFromNumber(5,11)

感謝你能夠認真閱讀完這篇文章,希望小編分享怎么使用hex()在python中轉換進制內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI