我正在尝试构建一些可用于将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,黑色像素在0,0和MSPaint中为1.1)。
我不理解的是他们如何将这些字节转换为9位十六进制代码。
00如何变成100?二进制中的条(|)是什么意思?
答案 0 :(得分: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