0

我正在尝试构建一些代码,可用于将 GIF 文件转换为另一种文件格式(我已经知道如何创建。[我正在尝试简化从 GIF 到 GRF 的转换——一种打印机图形文件格式。])

我正在处理来自维基百科(http://en.wikipedia.org/wiki/Graphics_Interchange_Format#Image_coding)的信息。

有一节描述了从字节到 9 位代码的转换。他们展示的例子是:

9-bit   binary   Bytes
(hex)            (hex)

        00000000  00
100
        0101000|1  51
028
        111111|00  FC
0FF
        00011|011  1B
103
        0010|1000  28
102
        011|10000  70
103
        10|100000  A0
106
        1|1000001  C1
107
         10000011  83
         00000001  01
101
        0000000|1  01

我能够从文件生成右侧给出的字节。(我完全按照他们在文章中描述的方式创建了一个文件(3x5,MSPaint 中黑色像素为 0,0 和 1,1。)

我不明白的是他们如何将这些字节转换为 9 位十六进制代码。

00如何变成100?二进制中的竖线 (|) 是什么意思?

4

1 回答 1

0

才意识到发生了什么...

         00000000  00        Add the next digit to the beginning - 100000000 = 100
100
         0101000|1  51        Next Digit - 000101000 = 028
028
         111111|00  FC        -011111111 = 0FF
0FF
         00011|011  1B        -100000011 = 103
103
         0010|1000  28        -100000010 = 102
102
         011|10000  70        -100000011 = 103
103
         10|100000  A0        -100000110 = 106
106
         1|1000001  C1        -100000111 = 107
107
         10000011  83
         00000001  01         -100000001 = 101
101
         0000000|1  01
于 2013-01-02T21:23:43.970 回答