python十进制转十六进制不用upper
时间: 2023-10-19 13:05:58 浏览: 49
在 Python 中,使用内置函数 `hex()` 可以将十进制数转换为十六进制表示。默认情况下,该函数返回的字符串中的字母是小写的。如果要将字母转换为大写,可以使用字符串的 `upper()` 方法。
但是,如果你不想将字母转换为大写,只需使用 `hex()` 函数即可。例如:
```python
num = 255
hex_num = hex(num)
print(hex_num) # 输出:0xff
```
这里 `hex()` 函数返回的字符串中字母都是小写的。如果你想将其转换为大写,可以使用 `upper()` 方法,例如:
```python
num = 255
hex_num = hex(num).upper()
print(hex_num) # 输出:0XFF
```
注意,这里先使用 `hex()` 函数将整数转换为十六进制字符串,然后再使用 `upper()` 方法将字符串中的字母转换为大写。
相关问题
QString十六进制负数转十进制
```python
# 引用[1]
# QString类型16进制转换为ByteArray
def hex_to_bytearray(hex_str):
hex_str = hex_str.replace(" ", "") # 去除空格
byte_array = bytearray.fromhex(hex_str)
return byte_array
# 输入数据错误判断及提示
def is_valid_hex(hex_str):
hex_str = hex_str.replace(" ", "") # 去除空格
if len(hex_str) % 2 != 0: # 长度不是偶数,说明输入错误
return False
try:
int(hex_str, 16) # 尝试将输入的十六进制字符串转换为整数
return True
except ValueError:
return False
# CRC16校验计算公式
def crc16(byte_array):
crc = 0xFFFF
for byte in byte_array:
crc ^= byte
for _ in range(8):
if crc & 0x0001:
crc >>= 1
crc ^= 0xA001
else:
crc >>= 1
return crc
# 计算ByteArray的crc16结果
def calculate_crc16(hex_str):
byte_array = hex_to_bytearray(hex_str)
crc = crc16(byte_array)
return crc
# 结果转换为QString,并且每两位数据都需要增加空格展示
def crc16_to_qstring(crc):
hex_str = hex(crc)[2:].upper() # 将十进制的CRC16转换为十六进制字符串
hex_str = ' '.join(hex_str[i:i+2] for i in range(0, len(hex_str), 2)) # 每两位数据增加空格
return hex_str
# 输入清除功能
def clear_input():
# 清空输入框的内容
pass
# 示例
hex_str = "FF 01 02 03"
if is_valid_hex(hex_str):
crc = calculate_crc16(hex_str)
qstring_crc = crc16_to_qstring(crc)
print("QString十六进制负数转十进制结果:", qstring_crc)
else:
print("输入的十六进制字符串格式错误,请重新输入")
```
数据结构实验,利用栈实现二进制,八进制,十进制,十六进制之间的转换,写出完整代码
以下是基于Python语言的栈实现二进制、八进制、十进制、十六进制之间的转换的完整代码:
```
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def size(self):
return len(self.items)
# 十进制转换为二进制
def decimal_to_binary(decimal_num):
binary_stack = Stack()
binary_num = ''
while decimal_num > 0:
remainder = decimal_num % 2
binary_stack.push(remainder)
decimal_num = decimal_num // 2
while not binary_stack.is_empty():
binary_num += str(binary_stack.pop())
return binary_num
# 十进制转换为八进制
def decimal_to_octal(decimal_num):
octal_stack = Stack()
octal_num = ''
while decimal_num > 0:
remainder = decimal_num % 8
octal_stack.push(remainder)
decimal_num = decimal_num // 8
while not octal_stack.is_empty():
octal_num += str(octal_stack.pop())
return octal_num
# 十进制转换为十六进制
def decimal_to_hex(decimal_num):
hex_stack = Stack()
hex_num = ''
while decimal_num > 0:
remainder = decimal_num % 16
if remainder < 10:
hex_stack.push(remainder)
else:
hex_stack.push(chr(ord('A') + remainder - 10))
decimal_num = decimal_num // 16
while not hex_stack.is_empty():
hex_num += str(hex_stack.pop())
return hex_num
# 二进制转换为十进制
def binary_to_decimal(binary_num):
decimal_num = 0
for i in range(len(binary_num)):
decimal_num += int(binary_num[i]) * 2 ** (len(binary_num) - 1 - i)
return decimal_num
# 八进制转换为十进制
def octal_to_decimal(octal_num):
decimal_num = 0
for i in range(len(octal_num)):
decimal_num += int(octal_num[i]) * 8 ** (len(octal_num) - 1 - i)
return decimal_num
# 十六进制转换为十进制
def hex_to_decimal(hex_num):
decimal_num = 0
for i in range(len(hex_num)):
if hex_num[i].isdigit():
decimal_num += int(hex_num[i]) * 16 ** (len(hex_num) - 1 - i)
else:
decimal_num += (ord(hex_num[i].upper()) - ord('A') + 10) * 16 ** (len(hex_num) - 1 - i)
return decimal_num
# 测试
if __name__ == '__main__':
decimal_num = 123
binary_num = decimal_to_binary(decimal_num)
octal_num = decimal_to_octal(decimal_num)
hex_num = decimal_to_hex(decimal_num)
print('十进制数{}对应的二进制数为:{}'.format(decimal_num, binary_num))
print('十进制数{}对应的八进制数为:{}'.format(decimal_num, octal_num))
print('十进制数{}对应的十六进制数为:{}'.format(decimal_num, hex_num))
print('二进制数{}对应的十进制数为:{}'.format(binary_num, binary_to_decimal(binary_num)))
print('八进制数{}对应的十进制数为:{}'.format(octal_num, octal_to_decimal(octal_num)))
print('十六进制数{}对应的十进制数为:{}'.format(hex_num, hex_to_decimal(hex_num)))
```
上述代码中,我们首先定义了一个栈类,然后分别实现了十进制转换为二进制、八进制、十六进制,以及二进制、八进制、十六进制转换为十进制的函数。最后,我们在`if __name__ == '__main__':`语句块中对代码进行了测试,以验证其正确性。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)