【问题标题】:Java: Error "Incompatible datatypes"Java:错误“不兼容的数据类型”
【发布时间】:2010-01-11 10:04:22
【问题描述】:
private byte[] decode_text(byte[] image)
{
    int length = 0;
    int offset = 32;
    for(int i=0; i<32; ++i)
    {
        length = (length << 1) | (image[i] & 1);
    }
    byte[] result = new byte[length];
    for(int b=0; b<result.length; ++b )
    {
        for(int i=0; i<8; ++i, ++offset)
            {
            /* I'm getting error at the following line */
            result = (byte)((result << 1) | (image[offset] & 1));
            }
        }
    return result;
}

错误是不兼容的数据类型...需要字节[]并找到字节............

【问题讨论】:

    标签: java


    【解决方案1】:

    您不能对 result 变量进行位移,因为它是一个字节数组。

    【讨论】:

      【解决方案2】:

      你可能想要:

      result[b] = (byte)((result[b] << 1) | (image[offset] & 1));
      

      【讨论】:

        【解决方案3】:

        您也不能将单个 byte 分配给 byte-Array。

        【讨论】:

          【解决方案4】:

          你正在投射所有这些操作的结果

          ((result << 1) | (image[offset] & 1));
          

          (byte) 并将其分配给byte[]

          你可以声明一个新的字节变量,你对那个变量进行操作然后做

          result[i] = myNewByteVariable;
          

          【讨论】:

            【解决方案5】:

            你可能想做类似的事情

                byte[] result = new byte[length];
                for(int b=0; b<result.length; ++b )
                {
                    byte value = 0;
                    for(int i=0; i<8; ++i, ++offset)
                    {
                        /* I'm getting error at the following line */
                        value = (byte) ((value << 1) | (image[offset] & 1));
                    }
                    result[b] = value;
                }
            

            【讨论】:

              猜你喜欢
              • 2013-09-23
              • 1970-01-01
              • 2016-09-11
              • 2013-10-29
              • 1970-01-01
              • 1970-01-01
              • 2011-08-26
              • 2013-04-19
              • 2014-03-29
              相关资源
              最近更新 更多