『壹』 java 中 int轉成 byte【2】
因為在java中,int類型的佔4個位元組,而byte佔1個位元組,所以int類型轉化為byte類型時會出現位丟失情況,即將int的低8位作為byte類型的值。int型變數的值為257,對應的二進制是100000001,後8位是00000001,第一個0表示符號位,表示正數,所以變數x的值為1。
『貳』 Java中給byte變數直接賦值可以自動轉換,但為什麼把int變數賦給byte變數需要強制轉換,同樣是int。
是這樣的,整型直接量在沒有加後綴的時候默認為int,但是當它被賦值給某個變數(這個變數是short型,int型,byte型中的一種)時,則會自動磨搏皮轉化成相對應的類型。
比如說byte a=127;這里的127在沒有賦值給a時默認是int型瞎差,賦值時自動調為byte型,並賦給a。
但是,如果出現這樣的情銀耐況:
int a=12;//此處a已經確定是int型
byte b=(byte)a;/**此處必須強制轉
換!因為a已經確
定是int型,必
須轉化成byte型
**/
『叄』 JAVA里int型強制轉化成byte型
因為java的byte類型只佔一個位元組,即2的8次方,表示的范圍是0~127,128溢出了當做0,129為1,以此類推。所以 257轉換為byte後的值為:257-128-128=1323轉換為byte後:323-128-128=67
『肆』 JAVA中怎麼將int數據轉換為byte數據
JAVA中根據以下代碼將int數據轉換為byte數據:
public static byte[] int32ToBytes(int val) {
int size = Integer.SIZE / Byte.SIZE;
byte[] ret = new byte[size];
for (int i = 0; i < size; ++i) {
ret[i] = (byte) (val << (8 * i) >> 56);
}
return ret;
}
(4)javaint轉換成byte擴展閱讀
Java也提供了一個byte數據類型,並且是基本類型。java byte是做為最小的數字來處理的,因此它的值域被定義為-128~127,也就是signed byte。
byte,即位元組,由8位的二進制組成。在Java中,byte類型的數據是8位帶符號的二進制數。在計算機中,8位帶符號二進制數的取值范圍是[-128, 127],所以在Java中,byte類型的取值范圍也是[-128, 127]。
運算規則:
####正數的最高位都是 0 ,正數的值就是二進製表示的值。 ####
####負數的最高位都是 1 ,負數的值是 取反後加一 然後加個負號得到得值。 ####