當前位置:首頁 » 編程語言 » java中位元組

java中位元組

發布時間: 2022-04-03 02:56:18

java語言中一個字元占幾個位元組

Java規定了字元的內碼要用UTF-16編碼,一個字元是2個位元組。外碼字元所佔位元組取決於具體編碼。字元和位元組是不一樣的。

外碼編碼不同,字元和位元組的換算不同,幾種常見的編碼換算如下:

ASCII編碼是單位元組編碼,只有英文字元,不能編碼漢字。

GBK編碼1個英文字元是1個位元組,一個漢字是是2個位元組。

UTF-8編碼1個英文字元是1個位元組,一個漢字是3個位元組。

Unicode編碼1個英文字元是2個位元組,一個漢字是2個位元組。

(1)java中位元組擴展閱讀

漢字編碼的困難點 漢字進入計算機,有許多困難,其原因主要有三點:

①數量龐大:一般認為,漢字總數已超過6萬個(包括簡化字)。雖有研究者主張規定3000多或4000字作為當代通用漢字,但仍比處理由二三十個字母組成的拼音文字要困難得多。

②字形復雜:有古體今體,繁體簡體,正體異體;而且筆畫相差懸殊,少的一筆,多的達36筆,簡化後平均為9.8筆。

③存在大量一音多字和一字多音的現象:漢語音節416個,分聲調後為1295個(根據《現代漢語詞典》統計,輕聲39個未計)。以1萬個漢字計算,每個不帶調的音節平均超過24個漢字,每個帶調音節平均超過7.7個漢字。有的同音同調字多達66個。一字多音現象也很普遍。

❷ java中的字元串佔多少位元組

要看字元串長度一個字元2位元組
比如
Stringstr="abc";
str有三個字元佔6個位元組

❸ 關於java中位元組與字元的問題

讀取四個輸入位元組並返回一個 int 值。設 a-d 為四個讀取位元組中的第一個位元組。返回的值是:

(((a & 0xff) << 24) | ((b & 0xff) << 16) |
((c & 0xff) << 8) | (d & 0xff))
此方法適用於讀取用介面 DataOutput 的 writeInt 方法寫入的位元組。

❹ java中一個漢字 位元組

你這個問題涉及到漢字的生成原理,漢字是由區碼和位碼組成的,在組成一個漢字之後,把這兩個位元組認為是一個字元,而在計算長度的時候又是看有幾個字元,所以「國人」的length=2了。
您的進步是我最大的動力,如果你覺得我回答的合理的話,請給我多加分。謝謝,如果不明白的話,請給我留言。大家相互學習啊! 加油!

❺ java語言中位元組型數據的長度是多少

short 兩位元組 int 四位元組 long int 8位元組
char 兩位元組 float 32位元組 double 64位元組
1個位元組佔8位

❻ java中的byte有什麼作用

在今天,byte位元組就是一個八位元組,使用其它位數的機器都進了博物館。 java也提供了一個byte數據類型,並且是基本類型。java byte是做為最小的數字來處理的,因此它的值域被定義為-128~127,也就是signed byte。不幸的是,byte的用作計數的時間遠少於用表達基本內存單元的時間。比如從stream里讀入一個雙位元組字元,我們先收到2個byte。為了把byte轉換成適當的形式,需要對byte值做一些比較,比如判斷字元集要比較其是否在某個編碼范圍內,比如GBK 0x8140~0xFEFE,然後new適當的string。 signed byte 把 0x00 ~ 0xff 映射成 0~127 -128~-1 兩段,注意當與literal比較時,java自動將literal識別成int 可以用 下面的小程序來驗證: 1 public class JavaByte 2 { 3 public static void main(String[] args) 4 { 5 byte b = 0; 6 for ( int i = 0; i <= 0xff; ++i ) 7 { 8 b = (byte)i; 9 System.out.print(" "+i+":"+b+", "); 10 } 11 } 12 } 當收到(0xC7B0)這個GBK字元時,要判斷 0x81 <= 0xC7 <= 0xFE 是否成立,實際變成判斷 -127 < -57 < -2,唔,萬幸,可以直接比較 low < ch < high。如果要判斷 0x00 <= 0xC7 <= 0x80 (ASC Char),這回麻煩了,變成判斷 (0 <= -57 <= 127) || ( 0x57 == -128 )。比較簡單的辦法用 (b+256)%256的辦法令其值回到0~255,或者用&0xff並賦給一個int。考慮到jvm里的byte其實也是32位的,所以在計劃用byte的地方,直接用integer並不會有什麼實際的損失,而 DataInputStream也提供了一個readUnsignedByte()方法返回的是int。所以真正的解決方案是忘掉byte,直接上 int。至於為什麼java沒有unsigned數據類型,照下面這個interview里Jams Golsing的意思,應該是java應該簡單而unsigned算術過於復雜了會讓大多數程序員產生誤解誤用:

❼ java里位元組和字元分別是什麼概念,怎麼區別

這不光是 Java 的概念,我們知道機器只知道位元組,而字元卻是語義上的單位,它是有編碼的,一個字元可能編碼成1個2個甚至3個4個位元組。這跟字元集編碼有關系,英文字母和數字是單位元組,但漢字這些自然語言中的字元是多位元組的。一個位元組只能表示255個字元,不可能用於全球那麼多種自然語言的處理,因此肯定需要多位元組的存儲方式。

當我們在處理 Java 時,比如 InputStream, OutputStream 它們是處理位元組流的,就是說假設所有東西都是二進制的位元組,而 Reader, Writer 則是字元流,它涉及到字元集的問題,因為把一個字元保存到磁碟或讀取出來需要指定一個字元集,平時你的代碼沒有指定是因為 JVM 讀取操作系統默認的字元集,有時候(特別是數據交換的時候)可能這個默認字元集不正確。

在 Java 中,它的內核是使用 Unicode,也就是說它記住了每個字元的 Unicode 內部編碼(一串數字,全球唯一,各國語言常用字元全部在裡面,比如康熙字典這種古董中的多數漢字都在其中),只有把字元串通過網路發送出去或保存到磁碟上或反過來讀取時才有字元編碼成位元組的過程,因為一個字元多個位元組我們需要知道每個字元的這幾個位元組是按什麼順序排列的,第1個位元組排前面還是排後面,多個字元串在一起時在讀取時怎麼識別出哪幾個位元組湊在一起是一個字元,這就是字元集編碼方案了,UTF8, GBK, GB2312, GB18030, BIG5,之類的都是其中一種字元集編碼方案。

❽ java一個漢字占幾個位元組

1、首先,定義好主類程序,並為程序添加main程序入口。

❾ java中byte占幾個位元組

byte 1個位元組 8位;short、char 2個位元組 16位;int float 4個位元組 32位;double、long 8個位元組 64位;別說些錯答案,位元組和位是有區別的好嘛?!

❿ Java中一個字元到底多少個位元組

字元 不等於 位元組。
字元(char)是 Java 中的一種基本數據類型,由 2 個位元組組成,范圍從 0 開始,到 2^16-1。
位元組是一種數據量的單位,一個位元組等於 8 位。所有的數據所佔空間都可以用位元組數來衡量。例如一個字元占 2 個位元組,一個 int 占 4 個位元組,一個 double 占 8 個位元組 等等。

熱點內容
qq密碼不記得怎麼辦 發布:2025-01-18 12:48:22 瀏覽:448
安卓系統停用怎麼辦 發布:2025-01-18 12:35:49 瀏覽:260
五菱宏光星辰哪個配置最值得買 發布:2025-01-18 12:29:43 瀏覽:595
鴻蒙系統為什麼完美兼容安卓應用 發布:2025-01-18 12:16:02 瀏覽:856
數分轉演算法 發布:2025-01-18 12:08:31 瀏覽:612
iphone硬體為什麼比安卓更好 發布:2025-01-18 12:08:29 瀏覽:822
醫院冷熱源配置有哪些 發布:2025-01-18 12:08:26 瀏覽:167
編譯到倉庫 發布:2025-01-18 12:04:40 瀏覽:650
移動硬碟怎樣加密 發布:2025-01-18 11:54:55 瀏覽:50
國際服如何改伺服器 發布:2025-01-18 11:52:34 瀏覽:326