【问题标题】:Trouble with simple Hex to Int Calculation简单的十六进制到整数计算的问题
【发布时间】:2019-10-22 20:16:43
【问题描述】:

mp4 文件的规范概述了其包含的矩阵。为此,它描述了:

矩阵为视频提供了一个变换矩阵:(u,v,w) 在这里被限制为 (0,0,1),类型为 (uint32_t, uint32_t, uint32_t),十六进制值:(0,0, 0x40000000)。 u、v 和 w 存储为 2.30 定点值。

抛开所有上下文,有人可以向我解释一下 0x40000000 如何等于 1 作为无符号 Int(32) 变量中的 2.30 定点值吗?

我得到的是 2,而不是 1。仅供参考,我是这些东西的新手。

【问题讨论】:

  • 你能展示你获得 2 的过程吗?
  • 当然,我使用转换器将 0x40000000 转换为二进制 => 1000000000000000000000000000000。在小数点左侧留下 10,我计算为 2
  • 你检查过这个值有多长吗?
  • 是的,很抱歉在我写完之前发布,刚刚编辑了它
  • 我不认为你的编辑回答了:P

标签: binary hex


【解决方案1】:
0x40000000 = 0b01000000000000000000000000000000
         2 ----^^
       .30 ------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

前两位是01,代表1。后三十位是00…0,代表0/230。将它们加在一起得到 1。

或者,0x40000000/230 也是 1。

【讨论】:

    猜你喜欢
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 2021-08-30
    • 2019-04-16
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多