请问有谁能给我解释一下那个printComplement方法不?

public class TransCode1{

    private int data;

    public void TranCode(int data){

        this.data=data;

    }

    public void printComplement(){

        for(int i=0;i<32;i++){

            int t=(data &(0x80000000>>>1))>>>(31-i);

            System.out.print(t);

        }

    }

    public static void main(String[] args){

        TransCode transCode=new TransCode();

        transCode.printComplement();

    }

}


123Zhou123
浏览 1295回答 1
1回答

qq___524

data &(0x80000000>>>1)是将data与0100 0000 0000 0000 0000 0000 0000 0000(二进制)做与运算,如果data的第31位是0,结果就是0,如果是1,结果就是0100 0000 0000 0000 0000 0000 0000 0000,然后在将结果右移(31-i)位,群前面用0填充
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java