我正在尝试将此十六进制字符串% Mock data, since you haven't provided a data sample
x = randn(200,50);
y = randn(200,50);
z = randn(200,50);
% Plot first frame before loop
HS = scatter3(x(:,1), y(:,1), z(:,1));
hold on
% Provide initial axes limits (adjust to your data)
xlim([-5,5])
ylim([-5,5])
zlim([-5,5])
% Set 'LimModes' to 'manual' to prevent auto resaling of the plot
set(gca, 'XLimMode', 'manual', 'YLimMode', 'manual', 'ZLimMode', 'manual')
for i=2:len(x,2)
scatter3(x(:,i), y(:,i), z(:,i))
pause(1)
end
转换为带符号的整数。
所以我应该得到结果F1
我在这里拥有此Python函数,该函数运行良好,但不适用于此字符串-15
代码:
F1
例如,如果我将def get_signed_value(value):
return -(value & 0x8000) | (value & 0x7fff)
作为值传递,那么我将得到FF5F
作为正确的响应。
但是,如果我通过-161
,则会得到F1
作为响应,这不是正确的值。
答案 0 :(得分:2)
您的函数设计用于值为−32.768 (0x8000) to 32.767 (0x7fff)
的16位数字,而0xf1
仅为值为-128 (0x80) to 127 (0x7f)
的8位数字。因此,该函数中的return
语句无法正确应用。
您必须根据十六进制数中的位数更改功能。对于8位:
def get_8bit_signed_value(value):
return -(value & 0x80) | (value & 0x7f)
然后
get_8bit_signed_value(int('0xf1', 16))
为-15
返回所需的0xf1
。您可以通过用nbits
1 << (nbits-1)
位的位数进行此功能