3.11
练习11
以一个最高有效位为1的二进制数字开始(提示:使用十六进制常量),用有符号右移操作符对其进行右移,直至所有的二进制位都被移除为止,每移一位都要使用Integer.toBinaryString()显示结果。
做题启示:
- 移位操作处理int类型,其他类型数据进行移位操作时,也会转化成int类型
- int 类型32位,最高位为1。选择0x80808080(用十六进制表示)
- 将所有位移出,且移每一位都要输出:移位32次——循环
public class test11{
public static void main(String []args) {
int x = 0x80808080;
for(int i=0;i<32;i++){
x>>=1;
System.out.println(Integer.toBinaryString(x));
}
}
}
输出结果
11000000010000000100000001000000
11100000001000000010000000100000
11110000000100000001000000010000
11111000000010000000100000001000
11111100000001000000010000000100
11111110000000100000001000000010
11111111000000010000000100000001
11111111100000001000000010000000
11111111110000000100000001000000
111111111110000000100000