【问题标题】:What does 32bit/8bit and two complement mean when talking about integers?在谈论整数时,32bit/8bit 和两个补码是什么意思?
【发布时间】:2013-05-10 23:36:36
【问题描述】:

我正在写的一本书不断提到将颜色值存储在 24 位或 8 位整数中。我搜索了java docs,但它只提到整数/字节是“32 位有符号二进制补码整数/8 位有符号”。谢谢。

【问题讨论】:

    标签: java graphics integer


    【解决方案1】:

    这些书都在讨论颜色信息是如何存储的,以及它可以有多少值。

    整数可以存储在许多不同大小的容器中,但在 C/C++(可能还有 Java?)中最常见的是:

    • 8 位(即char
    • 16 位(即short
    • 32 位(即intlong

    在您的情况下,24 位指的是它使用 24 位来存储颜色信息,从而为您提供 2^24 个颜色值 (16,777,216)。同样,一个 8 位颜色值可以存储 256 个值。

    2的comp是指表示有符号值的方法。见:http://en.wikipedia.org/wiki/Two%27s_complement

    据我所知,颜色值通常是无符号的,因此它并不真正适用于您的问题。

    【讨论】:

    • 你在 2^24 中的 2 是从哪里得到的?
    • 这是基础。因此,由于这些值都存储为二进制“位”,即 0 或 1,并且您有 24 个,因此您会得到 2^24 个不同的值。
    • @IntentFilters 如果我有 2 位信息(即 2 个 1 或 0),我可以存储 00 01 10 11(4 个值,或 2^2),如果我有 3 位信息,我可以存储 000 001 010 011 100 101 110 111(8 个值或 2^3)等等等等,一直到 24 位是 2^24 个值
    猜你喜欢
    • 1970-01-01
    • 2011-06-23
    • 2011-09-21
    • 1970-01-01
    • 2011-03-04
    • 2020-01-29
    • 2018-03-05
    • 2013-04-05
    相关资源
    最近更新 更多