运用下面语句读取位图调色板数据到byte数组。读取了1024个元素。
int bmpPaletteElemenNUM = 1024;
byte bpaletteText[] = new byte[bmpPaletteElemenNUM];
in = new RandomAccessFile("D:/eclipse/workspace/BitMap/bin/logo3.bmp","r");
in.read(bpaletteText,0,bmpPaletteElemenNUM);而在eclipse中Debug时发现调试信息是:
bpaletteText = byte[3860](id = 21)
bpaletteText 中只能装下1024个元素呀?这句话是什么意思了。将bpaletteText中的数据写入文本后,前六个数据为:
4, 2 ,4 ,
130 ,131 ,98 ,
相对其进行相应的算术运算,请问又应该怎么操作?试着用C语言中的方式,因为bpaletteText 是字节数组,每个元素的最大范围是
255,可以通过bpaletteText[0],bpaletteText[1],bpaletteText[2]能进行加减。
即,
 按常理来讲:int x = bpaletteText[0] +bpaletteText[1] +bpaletteText[2];
                  x = 4 + 2 + 4;
                  x = 10;
但,事实上,bpaletteText[0] 为 52 ,bpaletteText[1] 为 44
      bpaletteText[2] 为 32 (这些数据也是从DEBUG中得到的)
为什么写入文本的是 4,2,4
而直接读数组得到的是 52 44 32 50 32 44请帮忙看看上面的问题。

解决方案 »

  1.   

    byte bText[] = new byte[7];
    String str = null;

    str =4+","+5+","+23+",";
    bText = str.getBytes();
    for(int i = 0;i<bText.length ;i++)
    System.out.println(bText[i]);
    这样最终得到的结果是 4 ,5 ,2 3 ,的ASCII码输出,而我想要得到的
    是 4 5 23输出,并且想直接操作这些数据,对其进行加减请问该怎么办了?
      

  2.   

    直接给byte数组赋值bText[i] = (byte)n;bText[0] = 4;
    ...