gpt4 book ai didi

Python 相当于 perl vec() 函数

转载 作者:太空狗 更新时间:2023-10-30 01:38:19 25 4
gpt4 key购买 nike

我是 Python 新手。在 Perl 中,要将特定位设置为标量变量(整数),我可以使用 vec()如下所示。

#!/usr/bin/perl -w  
$vec = '';
vec($vec, 3, 4) = 1; # bits 0 to 3
vec($vec, 7, 4) = 10; # bits 4 to 7
vec($vec, 11, 4) = 3; # bits 8 to 11
vec($vec, 15, 4) = 15; # bits 12 to 15

print("vec() Has a created a string of nybbles,
in hex: ", unpack("h*", $vec), "\n");

输出:

vec() Has a created a string of nybbles, 
in hex: 0001000a0003000f

我想知道如何在 Python 中实现相同的功能,而不必编写位操作代码和手动使用 struct.pack?

最佳答案

不确定 vec 函数在 pearl 中是如何工作的(还没有使用过 vec 函数)。但是,根据您提到的输出,python 中的以下代码工作正常。我看不出第二个论点的意义。以这种方式调用 vec 函数:vec(value, size)。每次这样做时,输出字符串都会连接到全局 final_str 变量。


final_vec = ''
def vec(value, size):
global final_vec
prefix = ''
str_hex = str(hex(value)).replace('0x','')
str_hex_size = len(str_hex)
for i in range (0, size - str_hex_size):
prefix = prefix + '0'
str_hex = prefix + str_hex
final_vec = final_vec + str_hex
return 0
vec(1, 4)
vec(10, 4)
vec(3, 4)
vec(15, 4)
print(final_vec)

关于Python 相当于 perl vec() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20484736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com