问题描述:Java输出一个正数的ASCII
public class IntToASCII {
public static void print(int num) {
for (int i = 31; i >= 0 ; i--) {
System.out.print((num & (1 << i)) == 0 ? "0" : "1");
}
System.out.println();
}
public static void main(String[] args) {
print(1);
}
}
解题思路:
将目标数字与1左移i个数字进行与操作,判断是否等于0,是的话输出0,否的话输出1。
答疑:
1、for 循环32次是因为java int类型有32个字节。
2、(num & (1 << i)) == 0 ? "0" : "1",当(num & (1 << i)) == 0 时,为0,否则为1。
输出结果
最后希望大家有错请指点,本人为小白。在博客为了记录自己的学习历程。感谢!!!