byte a = [99, -45, -21, -38, -22, 84, -107, 56, 63, -75, 31, 107, 104, -64, 15, -124]
这里面都是什么类型的数? 怎样转换为16进制的数?

解决方案 »

  1.   

    这是数组么,还是字符、、、
    十进制转成十六进制:Integer.toHexString(int i)
      

  2.   

    数组 byte[] a = [99, -45, -21, -38, -22, 84, -107, 56, 63, -75, 31, 107, 104, -64, 15, -124]我想知道 ,byte里面的99等什么类型的数?
      

  3.   

    数组用for循环取值就在转进制
    十进制转成十六进制:Integer.toHexString(int i)
    在输出,里面都是int 型
      

  4.   

    计算机里的数字,都是二进制的,也就是16进制的,还可以说8进制的,4进制的,32进制的,256进制的
    具体到byte,我觉得可以说是256进制的,呵呵。其实多少进制,多少进制,只有在显示的时候才需要处理,运算的时候,都是2进制的
      

  5.   

    byte  存的是 8位2进制数,有符号的
    char为16位的无符号(采用unicode编码)
    但是jvm本身 存取是 int类型的  一般是32(机器不同 位数不同)
    byte应该是 jvm通过某些机制 截取的 8位二进制数(应该是吧)这里涉及到符号扩展char扩展为 无符号扩招byte通过 Integer.toHexString()的时候 会先转 int然后 调用
    Integer.toHexString()这时候 byte 会进行符号扩展比如 (byte)0x95 就会 转化为 int的 0xFFFFFF95要想转化为int但是 只保留byte位的话  只需要与上一个0xffPS:可以详细的去看 java解惑这个很重要我现在做的是底层 数据交互,就是二进制码的传说  用byte[] 存取刚开始 做校验的时候,经常发生混合运算  造成数据错误后来 恶补了 这方面 知识  现在总算明白了些