【问题标题】:How to convert int to hex and hex to int to get the following values?如何将 int 转换为 hex 并将 hex 转换为 int 以获得以下值?
【发布时间】:2016-03-23 14:56:05
【问题描述】:

我无法理解这种从十六进制到整数以及从整数到十六进制的转换。 67137076,713,707 的值如何等于 0x66716b?一个如何从一个到另一个?

这是我在调试器中看到的:

如果我把红色、绿色和蓝色加在一起,我会得到:

102 + 113 + 107 = 322;

如果我将这三个值相乘,我得到:

102 * 113 * 107 = 1,233,282;

6713707 的号码来自哪里?可以给我看看你的作品吗?

背景:
我正在使用颜色,在 HTML 和 CSS 中,您使用 #FF0000 来表示红色。但是在 JavaScript 和 ActionScript 中,当您访问这些颜色时,它们会以 int 和数字的形式返回。

【问题讨论】:

  • "如果我将这三个值相乘,我得到" --- 你将它们相乘是因为......?当你有十进制 111 时,它肯定不等于 1 * 1 * 1,而是等于 1 * 100 + 1 * 10 + 1 * 1

标签: javascript numbers int hex


【解决方案1】:

0x66716b 只是红色 (66)、绿色 (67) 和蓝色 (6b) 十六进制值的串联,0x 是一种表示“这是十六进制而不是十进制”的方式(这就是为什么有 [0x## ] 调试器中小数点旁边的值)

我很确定如果将 66716b 以十六进制转换为十进制,就会得到 6713707,即1 x b (b=11) + 16 x 6 + 256 x 1 + 4096 x 7 + ....(我没有计算器来确定/做剩下的事情)。

希望我有所帮助!

【讨论】:

    【解决方案2】:

    RGB 值是三个 8 位值,它们构成 32 位值的低 24 位(高 8 位有时称为“alpha 通道”)。所以你完整的 32 位十六进制值是 0x0066716b。 Converting hex to decimal 给出的值是 6713707。

    【讨论】:

    • 能解释一下它是如何工作的吗?我以前见过转换器。我想看作品。
    猜你喜欢
    • 2014-04-17
    • 2019-06-04
    • 2023-01-13
    • 2016-04-15
    • 1970-01-01
    • 2011-06-02
    • 2018-07-22
    • 2016-01-22
    • 1970-01-01
    相关资源
    最近更新 更多