回覆列表
-
1 # 影片好笑
-
2 # maimi32709
31用二進位制表示為:00011111; 31除2取餘得到的就是11111,然後在前面補上0;符號位用0和1表示,1表示負;負數的補碼是它的反碼加上1;所有原來的可以表示成:10011111(第一個1表示負號,所以下面不用變始終為1);它的反碼是:11100000;所以補碼是11100001;
31用二進位制表示為:00011111; 31除2取餘得到的就是11111,然後在前面補上0;符號位用0和1表示,1表示負;負數的補碼是它的反碼加上1;所有原來的可以表示成:10011111(第一個1表示負號,所以下面不用變始終為1);它的反碼是:11100000;所以補碼是11100001;
-31:1000 0000 0000 0000 0000 0000 0001 1111這個沒有計算過程,就是直接寫,31是11111,負數是第一位為1,共計32位需要計算過程的是求反碼,比如5取反~5二進位制原碼:0000 0000 0000 0000 0000 0000 0000 0101取反操作後:1111 1111 1111 1111 1111 1111 1111 1010而在Java中,有符號整數都是用補碼來表示,而補碼=反碼+11.先求反碼:1000 0000 0000 0000 0000 0000 0000 01012.再求補碼:1000 0000 0000 0000 0000 0000 0000 0110最高位代表符號位 1 表示負數,0 表示正數 所以結果是-6