1. 程式人生 > >面試題:byte b = 130;有沒有問題?如果我想讓賦值正確,可以怎麼做?結果是多少呢?

面試題:byte b = 130;有沒有問題?如果我想讓賦值正確,可以怎麼做?結果是多少呢?

byte b = 130;有沒有問題?如果我想讓賦值正確,可以怎麼做?結果是多少呢?
  1. class Demo2 {  
  2.     publicstaticvoid main(String[] args) {  
  3.         //因為byte的範圍是:-128到127。
  4.         //而130不在此範圍內,所以報錯。
  5.         //byte b = 130; 
  6.         //我們可以使用強制型別轉換
  7.         byte b = (byte130;  
  8.         //結果是多少呢?
  9.         System.out.println(b);  
  10.     }  
/*
分析過程:
我們要想知道結果是什麼,就應該知道是如何進行計算的。
而我們又知道計算機中資料的運算都是補碼進行的。
而要得到補碼,首先要計算出資料的二進位制。

A:獲取130這個資料的二進位制。
00000000 00000000 00000000 10000010
這是130的原碼,也是反碼,還是補碼。
B:做擷取操作,截成byte型別的了。
10000010 
這個結果是補碼。
C:已知補碼求原碼。
符號位數值位
補碼:1 0000010