无符号int到byte

时间:2017-07-09 15:24:44

标签: java unsigned signed

我正在尝试创建自定义输入流。我的问题是,read()方法返回一个0-255的整数,但我需要将其转换为一个字节,解密它,并将其转换回整数。怎么样?

我需要类似的东西:

InputStream in = ...;
OutputStream out = ...;

int unsigned = in.read();
byte signed = unsignedIntToSignedByte(unsigned); // from -128 to 127
... // Editing it here
outputstream.write(signedByteToUnsignedInt(signed)); // from 0 - 255

1 个答案:

答案 0 :(得分:0)

注意到创建自己的加密是不安全的,并且假设您正在执行此操作并且只是为了好玩而且#34;并且不要以任何方式思考你所做的事情是否安全,你真的不需要任何特别的东西......

int i = in.read();
byte b = (byte) i;
byte e = encrypt(b);
out.write(e);

将是基本方法,假设byte encrypt(byte b)方法执行"加密"。从这个例子中省略了检查流末尾,异常处理,性能考虑(你不想一次执行1个字节)等。