gpt4 book ai didi

c - 以十六进制除以 10

转载 作者:行者123 更新时间:2023-11-30 21:04:52 25 4
gpt4 key购买 nike

我需要将十六进制数的最后 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

我正在处理十六进制数字。

问题:

  1. 要右移多少次才能截去小数点后 6 位?
  2. 二进制或十六进制的位移(除以 10)更快吗?

最佳答案

正如各种评论所说,转变不会达到你想要的效果。而你想要什么本身就不清楚!

但是,您可以使用传统的除法和模运算符来实现您所需要的效果。像这样的东西:

int x = 524297500;
int a = x / 1000; // 524297
int b = x % 1000; // 500

这只是一个快速而肮脏的答案。另外,您会注意到我使用的数字比您小,并且分隔了最后 3 位(不是 6 位)小数。那只是因为您的示例太大,无法容纳 int(通常为 32 位长),而我想展示这个想法,而不是整数类型系统的具体细节。

关于c - 以十六进制除以 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58750555/

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