java中byte的范围为:127~-128(7位:111,1111),但是十六进制有8位(0xff:11111111)。
byte只能表示小于0x7f的数据。
  但是我要在程序中发送byte(8bit)的数据,最后要转换为十六进制显示出来。
  如何解决他们的不相容???
  
  谢谢!!!

解决方案 »

  1.   

    老兄,搞清楚什么是位再说?如果一个32位操作系统,那么所有的int都是32位(bit)
    不是长度8位就是8bit。byte是占8位的,因为高位时表示符号的。。7个1表示正数127.
    你的问题根本不是问题。
    16进制转换成byte一般都是转换成一个byte数组。、
    比如:16进制的字符:FFFFFF,注意是字符串,不是数字,转成byte数组就是[-1,-1,-1],如果你传的是这个数组,那么接收到转换成16进制就是FFFFFF。
    如果是数字的0xFFFFFFFF,你猜它表示的10进制是多少??是-1。其2进制就是32个1。因为计算机表示数字都是以补吗形式表现的。