導航:首頁 > 編程語言 > java二進制轉byte

java二進制轉byte

發布時間:2022-12-21 03:10:43

java 如何將8位2進制數字寫入到byte 中

00010010如果是字元串直接:
byte b=Byte.parseByte("00010010", 2);
System.out.format("%d", b);
==========
18

Ⅱ java中二進制怎麼表示

二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用「開」來表示1,「關」來表示0。
1、Java中定義兩個數,然後分別列印出它們的二進製表示:
System.out.println("Java二進制7: "+Integer.toBinaryString(7));
System.out.println("Java二進制-7: "+Integer.toBinaryString(-7));
輸出:
Java二進制7:
111
Java二進制-7:

可以看到Java中對於數的表示屬於有符號的,那麼這個是怎麼來的?
7好辦,直接是111
-7轉化二進制的過程:
(1)把-7轉化成7,二進制是
111
(2)Java中對於不滿32位的int二進制自動補齊,所以變成了
(29個0)111
(3)然後取反
(29個1)000
(4)然後加1
(29個1)001
這就是-7的整個轉化過程,那麼現在有一個問題,如果有一個文本文件,每一行有八位二進制,表示的范圍是(0~255),也就是用一個位元組表示的無符號整數,如果現在要把這些二進制轉化成整數存到文件里應該怎麼做?
文件:
line1

11111110

(254)
line2

00000000

(0)
假設用Java讀進了第一行,那麼直接列印出來的值是-2,不符合要求,這時讓-2變254有兩種辦法:
(1)用Java自帶的方法,Byte.toUnsignedInt((byte)
-2)(ps.-2的二進製表示就是line1),這樣列印出來的就是254了
System.out.println(Byte.toUnsignedInt((byte) -2));
輸出:254
第二種方法的原理:
Java中-2的二進製表示:(這個二進制的後八位就是line1,可以直接列印的話Java把其當做了負數
-2)
Java中255的二進製表示:(24個『0』,8個『1』)
做與後變為:
這樣做與後表示的數就是正數了
254。可以想一下,假設每一行用2個位元組表示一個無符號數,那麼可以把每一行變成正整數用方法2怎麼做?
2.Java中的>>和>>>
'>>'
算術右移,向右移左邊補符號位
'>>>'
邏輯右移,向右移左邊補0
System.out.println("Java二進制-7: "+Integer.toBinaryString(-7));
System.out.println("-7>>2: "+Integer.toBinaryString(-7>>2));
System.out.println("-7>>>2: "+Integer.toBinaryString(-7>>>2));輸出:
Java二進制-7:
-7>>2:
-7>>>2: //正常應該這樣(00)左邊的兩個0不顯示

Ⅲ java二進制的數字與字元串互轉

現成的方法,多看api

Ⅳ Java byte 二進制

二進制是由機器進行識別的,你這樣寫cpu只能認為它是十進制數,而且一個byte只有一個位元組,1111已經超過了255。如果代碼是這樣:
byte b = (byte) 255;
System.out.println(b);
系統輸出:-1,之所以是-1,因為255的二進制是11111111,計算機中是用補碼表示數字的,首位是1的話它認為是負數,而負數的絕對值等於其二進制碼的反碼加1,正是-1。如果:
byte b = (byte) 256;
System.out.println(b);
它又輸出:0。因為256的二進制是100000000,截取後8位是0。
而十進制的1111的二進制是10001010111,截取後8位是1010111,轉化為10進制就是87,因此如果代碼是:
byte b = (byte) 1111;
System.out.println(b);
輸出的結果是:
87。

Ⅳ java如何將BYTE型數轉化為八位二進制,及如何將八位二進制數轉化為Byte型的。

使用八進製表示整數,只要在十進制數前加一個0就可以了,比如12的八進制就i=012,這樣在輸出時System.out.println("i=" +i)就是i=10

Ⅵ java怎麼將二進制轉化成字元串

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

/*
* String(byte[] bytes, String charsetName):通過指定的字元集解碼位元組數組
* byte[] getBytes(String charsetName):使用指定的字元集合把字元串編碼為位元組數組
*
* 編碼:把看得懂的變成看不懂的
* String -- byte[]
*
* 解碼:把看不懂的變成看得懂的
* byte[] -- String
*
* 舉例:諜戰片(發電報,接電報)
*
* 碼表:小本子
* 字元 數值
*
* 要發送一段文字:
* 今天晚上在老地方見
*
* 發送端:今 -- 數值 -- 二進制 -- 發出去
* 接收端:接收 -- 二進制 -- 十進制 -- 數值 -- 字元 -- 今
*
* 今天晚上在老地方見
*
* 編碼問題簡單,只要編碼解碼的格式是一致的。
*/
public class StringDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
String s = "你好";

// String -- byte[]
byte[] bys = s.getBytes(); // [-60, -29, -70, -61]
// byte[] bys = s.getBytes("GBK");// [-60, -29, -70, -61]
// byte[] bys = s.getBytes("UTF-8");// [-28, -67, -96, -27, -91, -67]
System.out.println(Arrays.toString(bys));

// byte[] -- String
String ss = new String(bys); // 你好
// String ss = new String(bys, "GBK"); // 你好
// String ss = new String(bys, "UTF-8"); // ???
System.out.println(ss);
}
}

Ⅶ java中怎樣把二進制數轉換成對應的字元串

查API呀 String 裡面有方法:構造方法摘要String()
初始化一個新創建的 String 對象,使其表示一個空字元序列。String(byte[] bytes)
通過使用平台的默認字元集解碼指定的 byte 數組,構造一個新的 String。String(byte[] bytes, Charset charset)
通過使用指定的 charset 解碼指定的 byte 數組,構造一個新的 String。String(byte[] ascii, int hibyte)
已過時。 該方法無法將位元組正確地轉換為字元。從 JDK 1.1 開始,完成該轉換的首選方法是使用帶有 Charset、字元集名稱,或使用平台默認字元集的 String 構造方法。String(byte[] bytes, int offset, int length)
通過使用平台的默認字元集解碼指定的 byte 子數組,構造一個新的 String。String(byte[] bytes, int offset, int length, Charset charset)
通過使用指定的 charset 解碼指定的 byte 子數組,構造一個新的 String。String(byte[] ascii, int hibyte, int offset, int count)
已過時。 該方法無法將位元組正確地轉換為字元。從 JDK 1.1 開始,完成該轉換的首選方法是使用帶有 Charset、字元集名稱,或使用平台默認字元集的 String 構造方法。String(byte[] bytes, int offset, int length, String charsetName)
通過使用指定的字元集解碼指定的 byte 子數組,構造一個新的 String。String(byte[] bytes, String charsetName)
通過使用指定的 charset 解碼指定的 byte 數組,構造一個新的 String。String(char[] value)
分配一個新的 String,使其表示字元數組參數中當前包含的字元序列。String(char[] value, int offset, int count)
分配一個新的 String,它包含取自字元數組參數一個子數組的字元。String(int[] codePoints, int offset, int count)
分配一個新的 String,它包含 Unicode 代碼點數組參數一個子數組的字元。String(String original)
初始化一個新創建的 String 對象,使其表示一個與參數相同的字元序列;換句話說,新創建的字元串是該參數字元串的副本。String(StringBuffer buffer)
分配一個新的字元串,它包含字元串緩沖區參數中當前包含的字元序列。String(StringBuilder builder)
分配一個新的字元串,它包含字元串生成器參數中當前包含的字元序列。

Ⅷ Java二進制正數強制轉換byte後變負數的問題。

0b11101001
正好8位一個位元組,第一個位是符號位。
整型數在計算機中用補碼存儲的。
所以由補碼11101001求原碼
(負數求原碼除了符號位,其他位依次取反最後加一,或者先減一再取反,結果一樣的)
得到原碼10010111 就是 -23。

Ⅸ JAVA中byte類型的介紹。 謝謝

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

byte,即位元組,由8位的二進制組成。在Java中,byte類型的數據是8位帶符號的二進制數。

在計算機中,8位帶符號二進制數的取值范圍是[-128, 127],所以在Java中,byte類型的取值范圍也是[-128, 127]。

運算規則:

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

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

用8位的二進制來說明此規則:

比如:00000001。最高位是0 為正數 ,那麼表示的就是 十進制的 1。

再比如:10000001.最高位是1 為負數,值是多少?取反得到 01111110 加1 得到 01111111 ,那麼值為 -127

理解此運算規則我們正式開始說byte,byte正好是8位的二進制數。short是16位 int是32位 long是64位。

上述代碼,最後會輸出-56。原因如下:

200的二進製表示是111001000,由於int是32位的二進制,所以在計算機中,實際上是00000000000??111001000,當int轉成byte的時候,那麼計算機會只保留最後8位,即11001000。

然後11001000的最高位是1,那麼表示是一個負數,而負數在計算機中都是以補碼的形式保存的,所以我們計算11001000的原碼為00111000,即56,所以11001000表示的是-56,所以最後test的值為-56。

(9)java二進制轉byte擴展閱讀

Java編譯程序生成位元組碼(byte-code),而不是通常的機器碼。Java位元組碼提供對體系結構中性的目標文件格式,代碼設計成可有效地傳送程序到多個平台。Java程序可以在任何實現了Java解釋程序和運行系統(run-time system)的系統上運行。

在一個解釋性的環境中,程序開發的標准「鏈接」階段大大消失了。如果說Java還有一個鏈接階段,它只是把新類裝進環境的過程,它是增量式的、輕量級的過程。

因此,Java支持快速原型和容易試驗,它將導致快速程序開發。這是一個與傳統的、耗時的「編譯、鏈接和測試」形成鮮明對比的精巧的開發過程。

Ⅹ 在java中怎麼把二進制的字元串轉換成位元組數組,轉換後位元組數組不是二進制哈

Integer i = Integer.valueOf(binaryString, 2); //binaryString為二進制字元串
byte[] b = i.toString().getByte();

閱讀全文

與java二進制轉byte相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163