導航:首頁 > 編程語言 > javaint轉為byte數組

javaint轉為byte數組

發布時間:2024-07-13 00:40:35

java 中各種數據類型轉換byte[]的方法

ObjectOutputStream oos = null;//對象輸出流
ByteArrayOutputStream baos = null;//byte數組輸出流
ByteArrayInputStream s = null;//對象輸入流
try {
//序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);//將數組流傳入對象流
oos.writeObject(new Integer(1));//用對象流讀取對象。
byte[] bytes = baos.toByteArray();//用數組流將傳入的對象轉化為byte數組
//反序列化
s = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(s);
Integer i = (Integer)ois.readObject();
System.out.println(i);
} catch (Exception e) {

}以上是把integer類型轉化成byte[]數組類型。註:基本類型要轉化為byte[]數組的話,需要用該基本類型的引用類。比如int的引用類是integer,就行了所有的類型,包括class都可以用這種序列化方式來轉成byte[],

Ⅱ 在Java中int轉byte類型,超出byte的范圍該如何計算,答案盡可能詳細

程序要盡量避免溢出,這是原則,一旦溢出,再去研究值是什麼已經沒有意內義。
以下大容概給你說明一下:
一個位元組byte長8位,也就是2的8次方,換成2進制後就是
00000000~11111111
取值范圍就是那麼多,10進制就是0~255。
如果更長的類型如int轉成更短的類型,那麼只保留短類型那麼多長度的數據。
假設類型A為9位,其某變數值為
0 1111 1111,10進制為255,轉成byte正好也是255
假設類型A變數值為
1 0000 0000 ,換算成10進制為256,轉成byte為0

其中具體是截斷前面還是後面,是根據編譯工具版本來決定的,不同的語言可能會有不同的定義。

這樣說你大概可以明白了吧?

Ⅲ 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;

}

(3)javaint轉為byte數組擴展閱讀

Java也提供了一個byte數據類型,並且是基本類型。java byte是做為最小的數字來處理的,因此它的值域被定義為-128~127,也就是signed byte。

byte,顫罩即位元組,由8位的二進制組成。在Java中,byte類型的數據是8位帶符號的二進制數。在計算機中,8位帶符號二進制數的取值范圍是[-128, 127],所以在Java中,byte類型的取值范圍也是[-128, 127]。櫻坦

運算規則:

####正數的最高位都是 0 ,正數的值就是二進製表示的值。 ####

####負數的最高位都是 1 ,負數的值是 取反後加一 然後加個負號得到得值。 ####

Ⅳ 在java中如何將全為數字的字元串轉化為byte數組

public class DigitsString{
public static void main(String[] args){
String s="99999";
byte[] bytes=s.getBytes();
for(int i=bytes.length-1;i>=0;i--){
bytes[i]-=(byte)'0';
}
for(int i=0;i<bytes.length;i++){
System.out.print(bytes[i]);
}
System.out.println();
}
}
一樓二樓的位元組數組中元素的值不是對應數位的值,是數專位的ASCII碼,根本不符合題屬意

Ⅳ 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中正數用源碼表示,負數用補碼表示,第一位是符號位。
所以對於128和-129,他們的編碼分別是:
0000 0000 0000 0000 0000 0000 1000 0000
1111 1111 1111 1111 1111 1111 0111 1111。
對於a來說,1000 0000是負數(第一位為1),它的絕對值是1000 0000即128,
而對於b來說,0111 1111是正數,值為127。
————————————————————————————————————
0 00000000
1 00000001
... ........
127 01111111
----------------
共 128 個
-1 11111111
-2 11111110
... ........
-128 10000000
----------------
共 128 個
我們都知道byte佔8位。而2的8次方等於256,也就是byte最多可以表示256個不同的數,
0~127:128個
-0~127:128個
但是這里0與-0表示一樣的數了,所以就用-0的二進制補碼表示到-128裡面去了

閱讀全文

與javaint轉為byte數組相關的資料

熱點內容
平時用什麼app看nba 瀏覽:503
win10想以管理員身份運行bat文件 瀏覽:85
合並單元格中的其他數據如何排序 瀏覽:331
電腦窗口程序在哪 瀏覽:281
前女友把我微信刪了又加什麼意思 瀏覽:655
win10不識別無線xboxone手柄 瀏覽:403
汽車之家app怎麼看成交價 瀏覽:908
abc文件破解密碼 瀏覽:516
怎麼登錄米家app賬號 瀏覽:165
兆歐表多少轉讀數據 瀏覽:414
多媒體網路通訊 瀏覽:747
文件上的表填不了內容該怎麼辦 瀏覽:899
弟弟迷上網路小說怎麼辦 瀏覽:766
網路上有人想訪問我的地址怎麼辦 瀏覽:730
linux解壓zip亂碼 瀏覽:839
看直播數據用哪個平台最好 瀏覽:730
win10晶元驅動程序版本 瀏覽:763
如何給word添加公式編輯器 瀏覽:666
iphone桌面文件夾怎樣合並 瀏覽:919
要我蘋果賬號密碼忘記了怎麼辦 瀏覽:578

友情鏈接