Android中的字节和字节到短的转换

Ris*_*han 1 java android

我正在Android中开发一个软件.在软件的特定部分,我需要将short转换为byte并重新转换为short.我试过下面的代码,但转换后的值不一样.

  short n, n1;
  byte b1, b2;
  n = 1200;
  // short to bytes conversion
  b1 = (byte)(n & 0x00ff);
  b2 = (byte)((n >> 8) & 0x00ff);

  // bytes to short conversion
  short n1 = (short)((short)(b1) | (short)(b2 << 8));
Run Code Online (Sandbox Code Playgroud)

执行n和n1的代码值后不相同.为什么?

Jav*_*ave 5

我没有让Grahams解决方案工作.然而,这确实有效:

n1 = (short)((b1 & 0xFF) | b2<<8);
Run Code Online (Sandbox Code Playgroud)