62,620
社区成员
发帖
与我相关
我的任务
分享
int a = 500;
String bs = Integer.toBinaryString(a);
//int占32位
while (bs.length() < 32)
bs = "0" + bs;
System.out.println(bs);
byte b = (byte) a;// 一个byte占8位,强制类型转换截取低8位
bs = Integer.toBinaryString(b);
System.out.println(bs.substring(bs.length() - 8));
b >>= 2;// 带符号右移2位
bs = Integer.toBinaryString(b & 0xff);
System.out.println(bs.substring(bs.length() - 8));
00000000000000000000000111110100
11110100
11111101
public class Demo02 {
public static void main(String[] args){
int a = 500;
System.out.println(Integer.toBinaryString(a));
a = a>>>2;
System.out.println(Integer.toBinaryString(a));
}
}
上面的有点小瑕疵 应该是带符号的右移 500是正数,右移加零哈
111110100
1111101
public class Demo02 {
public static void main(String[] args){
int a = 500;
System.out.println(Integer.toBinaryString(a));
a = a>>2;
System.out.println(Integer.toBinaryString(a));
}
}