打印int类型数字32进制 java运算符 与& 或| 异或^ 解析

public class Main {

    public static void main(String[] args) {
        //获取一个int数字的32进制数  4*8位
        //int 类型是 32位  原理是每一位与1做与运算
        //& 1 1 = 1 ,1 0 =0,0 1=0,00=0  与运算 两个数都为1 才为1  与1做与运算,是为了确定n的每一位是否为1或者0
        //|运算  0 0 =0,1 1 = 1 ,1 0 =0,0 1=1 或运算  只要有1个为1 就为1 否则0
        // ^异或运算 0 0 =1,1 1 = 1 ,1 0 =0,0 1=0   相同为1 不同为 0
        // ~ 取反  1为0  0为1

        int  n = 9;
        for(int i=31 ;i>=0 ;i--){
            //(9&(1<<i))本质就是 计算机底层 9 表示为00000000000000000000000000001001
            //1<<i 表示 1向做移动i位
            //00000000000000000000000000001001每一位都与1做运算 都为1 才得1  所以打印出00000000000000000000000000001001
            System.out.print((n&(1<<i))==0?"0":"1");
        }
        System.out.println();
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值