仅使用位运算符实现转码
Implementation of transcoding using only bitwise operators
我有转码输入的十六进制数的功能。例如我有这样的数字初始格式
函数将其转码为这种格式:
我将 return 使用十六进制内置函数将函数作为字符串生成。我尝试过类似的方法,但没有用:
def task22(number) -> str:
"""
Returns transcoded hexadecimal string, this function uses bitwise operators to transcode given value
:param number: hexadecimal number to transcode
:return: Transcoded hexadecimal string
"""
a = number & 0b111111111111111
b = number & 0b111111111111111
c = number & 0b11
a = a << 17
b = b >> 13
c = c >> 30
return hex(a | b | c)
如何使用位运算符对数字进行转码?我需要使用按位向左和向右移动,但我不知道如何对上述格式执行此操作。
已解决。问题是我需要使用带 32 个零的按位 AND 运算符处理所有段(因为所有位数为 32)替换为 1,其中每个段位于这样的位序列中:
def task22(number) -> str:
"""
Returns transcoded hexadecimal string, this function uses bitwise operators to transcode given value
:param number: hexadecimal number to transcode
:return: Transcoded hexadecimal string
"""
a = number & 0b00000000000000000111111111111111
b = number & 0b00111111111111111000000000000000
c = number & 0b11000000000000000000000000000000
a = a << 17
b = b >> 13
c = c >> 30
return hex(a | b | c)
我有转码输入的十六进制数的功能。例如我有这样的数字初始格式
函数将其转码为这种格式:
我将 return 使用十六进制内置函数将函数作为字符串生成。我尝试过类似的方法,但没有用:
def task22(number) -> str:
"""
Returns transcoded hexadecimal string, this function uses bitwise operators to transcode given value
:param number: hexadecimal number to transcode
:return: Transcoded hexadecimal string
"""
a = number & 0b111111111111111
b = number & 0b111111111111111
c = number & 0b11
a = a << 17
b = b >> 13
c = c >> 30
return hex(a | b | c)
如何使用位运算符对数字进行转码?我需要使用按位向左和向右移动,但我不知道如何对上述格式执行此操作。
已解决。问题是我需要使用带 32 个零的按位 AND 运算符处理所有段(因为所有位数为 32)替换为 1,其中每个段位于这样的位序列中:
def task22(number) -> str:
"""
Returns transcoded hexadecimal string, this function uses bitwise operators to transcode given value
:param number: hexadecimal number to transcode
:return: Transcoded hexadecimal string
"""
a = number & 0b00000000000000000111111111111111
b = number & 0b00111111111111111000000000000000
c = number & 0b11000000000000000000000000000000
a = a << 17
b = b >> 13
c = c >> 30
return hex(a | b | c)