【发布时间】:2010-02-22 07:48:24
【问题描述】:
我目前正在开发visual c++ 2008 express edition。我的项目基于读取卫星图像并对其进行图像处理。 每个图像文件的格式为“.0FM”,大小为 8Mb。
到目前为止,我已经能够使用 FileStream 将文件(即 "*.0FM" )读取到 Byte 数组中,字节数组的大小为 8,000,000。
然后我将字节数组中的每个元素转换为十进制,所以现在数组中的每个元素的值都在 0 到 255 之间。 现在我必须将数组中的每个十进制值转换为其二进制值。 例如,86 应转换为 1010110
我真的被困在这里了。我尝试了System::Decimal::GetBits() 方法,但这个方法所做的只是将 86 存储到 bits[0] 中,
Decimal d = 86;
array<int>^ buf_bits = Decimal::GetBits(d);
此代码导致将值 86 存储在 buf_bits[0] 中,我没有得到 1010110。
【问题讨论】:
-
您能解释一下为什么需要这些位吗?看起来你在做一些很奇怪的事情。
标签: visual-studio-2008 visual-c++ managed-c++ visual-studio-express