问题描述
解决方案
解决方案二:
a1错了,应该是左移6位,即 <<64
解决方案三:
a3也错了,应该是左移2位,即 <<4
解决方案四:
这是用c++编写的,最简单的程序。记得负数右移,补的是符号位。
解决方案五:
t = (t1<<24)|(t2<<16)|(t3<<8)|t4
没有调试,但是思路就是这样
解决方案六:
先将byte装换成int时位扩展的高位1用&0xff变成0,再进行移位操作,
或者使用& 0xff00、& 0xff0000,对0xff也进行相应的位操作之后的再运算,
代码如下:
package com.ice_qi;
public class Move {
public static void main(String[] args) {
int i = 0xaabbccdd;
byte b1 = (byte)0xdd;
byte b2 = (byte)0xcc;
byte b3 = (byte)0xbb;
byte b4 = (byte)0xaa;
i = (b1 & 0xff)<<24 |
(b2 & 0xff)<<16 |
(b3 & 0xff)<<8 |
(b4 & 0xff)<<0;
System.out.format("%x",i);
}
}
时间: 2024-09-19 09:12:31