如何将整数分成单个字节并在FreeBASIC中再次合并它们?

时间:2011-11-15 05:21:18

标签: freebasic

我正在制作一个简单的隐写程序来隐藏PNG文件中的数据。解码/编码单个字节很简单,但我还需要隐藏PNG文件中的标题。这个头文件将包含以字节为单位的文件大小,以确切地知道我需要提取文件的字节数(太多字节和tge提取文件将被破坏)。

所以我需要将整数分成单个字节(因为FB中的整数是32位宽,这将导致四个单独的字节)。然后将这些字节编码到PNG图像的前16个像素中(在我的隐写算法1中,解码字节= 4编码,我仅使用R和B值进行数据存储)。我怎么能这样做?

TL; DR:我需要知道如何将整数分成四个单独的字节,然后再将这些字节合并为整数。

1 个答案:

答案 0 :(得分:1)

我在FB论坛上的朋友,Mysoft created this example how to do that。此外,感谢响应能力和快速回答stackoverflow的社区。

dim as integer x = &hFF88442211, y
dim as integer b1,b2,b3,b4

b1 =  x and &hFF
b2 = (x shr 8) and &hFF
b3 = (x shr 16) and &hFF
b4 = (x shr 24) and &hFF

y = b1+(b2 shl 8)+(b3 shl 16)+(b4 shl 24)

print hex$(x),hex$(y)
print hex$(b1),hex$(b2),hex$(b3),hex$(b4)