自我介绍一下:目前两年后端程序员,去年写过一个快速排序的文章。被网友怼了,最近才看到评论,虚心接受。之后会写一些算法帖子,如果觉得写的有问题或者思路差,请大家指正,一定虚心接受。好了我们开始
java整型数为32位二进制数表示:
例如:
1的表示:
00000000000000000000000000000001
10的表示:
00000000000000000000000000001010
负数的二进制为整数的二进制取反+1(这个规定是为了计算机在底层计算的时候使用一套逻辑)
所以-1的表示为:
11111111111111111111111111111111
0的表示:
00000000000000000000000000000000
我们回归本题:打印整数的二进制。我们以数字10为例
上面已经表示10的二进制是:
00000000000000000000000000001010
但现在我们输入的是十进制的数 10
但我们可以借助计算机底层计算方式为二进制,来进行操作
上代码;
public static void binarySystem(int param){
for(int i=31; i>=0; i--){
System.out.print(((1<<i)¶m) == 0 ? "0":"1");
}
}
左移1位置的数左移位数,来判断入参在该位置上的数是0还是1