2 guang nate Guang_Nate 于 2015.06.12 18:51 提问

安卓开发中如何使一个byte类型的数组内的数据不显示成负数

在做Android开发的时候一个byte类型的数组result,里面有比较大的正数,需要做什么样的处理才能使他显示的全是正数;求大神指导,给个代码
byte[] result

for (int i = 0; i < result.length; i++)
Log.e("读出全部page", "byte " + i + " is " + result[i]);

3个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.12 21:59
已采纳
 for (int i = 0; i < result.length; i++){
             int highBit = result[i] & 0x80;
             int restBit = result[i] & 0x7F;             
             System.out.println(highBit+restBit);
        }
danielinbiti
danielinbiti 回复Guang_Nate: 如果有帮助,记得采纳一下哦
大约 3 年之前 回复
Guang_Nate
Guang_Nate 谢谢
大约 3 年之前 回复
91program
91program   Ds   Rxr 2015.06.12 18:55

需要额外的代码处理,将字节转换为无符号数(如将-1转换为无符号数)
byte b1 = -1
int n = b1 & 0xFF
输出:n=255

a1193561652
a1193561652   Rxr 2015.06.12 18:56

java好像没有unsigned byte,你可以换int,也可以自己写个函数把byte格式化成字符串输出。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
调整数组 使得数组中负数排在前面正数排在后面,并且正数和负数的相对位置不变 (递归思路)
假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数和正数间元素相对位置不变。时空复杂度要求分别为:o(n)和o(1) 解题思路: 假设X代表正数,Y代表负数,下标代表正负数的序列位置,数组大小为arraySize 设有一数组 [X1, Y1, Y2, X2, Y3, Y4, X3, Y5, X4, X5]  (可以理解为 [1, -1, -
排序使得数组负数在正数左边且按照原来的顺序
假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数件和正数间元素相对位置不变。时空复杂度要求分别为:o(n),o(1) 例如     -3 4 2 -1 7 3 -5  排序后    -3 -1 -5 4 2 7 3 采用整体冒泡的思想,先从后找到第一个负数,然后把这一个负数看成一个“元素”,再看这个负数前面是正数还是负数,如果是负数,
Java 从流中读取byte的奇怪现象,出现负值,详解
其实一点都不奇怪,下面我们来详细分析 首先看下面一段代码,代码的意思是将128写入到文件中,再从文件中读出一个byte输出 File f = new File("f1"); FileOutputStream fos = new FileOutputStream(f); fos.write(128); fos.close(); FileInputStream
byte转int出现负数的情况
问题描述: 在文件流读取十六进制文件时,经常需要将某些字节读出来解析成表示大小的int数据,在此转化过程中可能会出现负数,好的解决方法是将byte[i]和0xFF进行与运算,因为byte为8bit,而int是32bit,故而在转化前需将高24位置零,这样就不会出现补码导致的转换错误。 在剖析该问题前请看如下代码 public static String bytes2HexString
语言小知识-处理数据时 Byte[] 尽量转换为 int[] 防止数字大小越界,变为负数
Byte 为4个字节 则最大为 127 范围为 0-127 int 为8个字节 则最大为 255 范围为 0-255如果发过来的数据 超过 127 不如把 数据 强制转换为 int型 这样 方便不少
java byte 字节负数
由于通讯协议中长度使用byte字节来表示,但在java中长度超过127的时候会变成负数,所以需要保证得到的长度是正数byte b & 0xFF http://www.blogjava.net/orangelizq/archive/2008/07/20/216228.html 在剖析该问题前请看如下代码 public static String bytes2HexString(
byte类型取值范围以及溢出详解
例1: public class test { public static void main(String[] args) { byte a = 127 ; a = (byte)(a+3) ; System.out.println(a); } } 输出-126,为什么呢 byte类型的取值范围是-128-127 这个输出结果是由java编码方式决定的,Java中正数用原码
java short 类型转byte[],带正负
java short 类型转byte[],带正负,2种方法方法一、这种方法跟正负没与关系public static int swap_16(int date){        int a,b;        a = (date&amp;gt;&amp;gt;8)&amp;amp;0x00ff;        b = (date&amp;lt;&amp;lt;8)&amp;amp;0xff00;        return (a+b);    }...
vb.net的Byte数据类型
如果变量包含二进制数,则可将其声明为Byte类型的数组。 在转换格式期间用Byte变量存储二进制数据就可保留数据。 当String类型变量在ANSI和Unicole格式之间进行转换时,变量中的任何二进制数据都会受到破坏。 在下列任何一种情况下,vb.net都会自动在ANSI
关于byte最高位为1时,为负数
在剖析该问题前请看如下代码 public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; }