我需要将十六进制数字的最后6个小数位与其余数字分开。
十进制除以10,与十六进制右移4次(x >> 4)相同。我试图向右移动,但从未获得正确的值。
Hex: 0x7A 11F8 5EE0
Dec: 524.297.500.000
我想将最后6个小数位分隔成一个新变量:
524.297.500.000 -> 524.297
a = 524.297
b = 500.000
repeat time
0x7A 11F8 5EE0 >> 4
我正在使用十六进制数字。
问题:
正如各种评论所说,转移不会实现您想要的。而您想要的东西本身还不清楚!
但是,您可以通过常规除法和模运算符实现所需的外观。类似于:
int x = 524297500;
int a = x / 1000; // 524297
int b = x % 1000; // 500
这只是一个简单的答案。另外,您会注意到我使用的数字比您小,并且将后3个(不是6个)小数位分开。那只是因为您的示例太大而无法容纳一个int(通常为32位长),并且我想展示这个想法,而不是整数类型系统的详细细节。