我希望将int
的每个组件放入byte[]
而不转换它们:
我有:
byte[] byte = {0x16,0x12,0x34}
我想分解它:
int Size = byte[0];
int Type = byte[1];
int Ref = byte[2];
但是这个代码我有
'尺寸= 22' ' Type = 18' '参考= 52'
他将十六进制转换为十进制但我想要
'尺寸= 16' ' Type = 12' '参考= 34'
我该怎么做?
答案 0 :(得分:1)
假设您的号码是正确的BCD(即两个数字都不是A
.. F
),您可以这样做:
int Size = 10 * (byte[0] / 16) + (byte[0] % 16);
这个想法是重新解释高位数,它表示十六进制数中的十六位数,作为十进制数的十位数。
例如,将0x52
除以16
整数生成5
,而16
的余数生成2
。现在,您将5
乘以10并添加回2
以获得十进制数字52。