簡體   English   中英

如何以位為單位獲取大小

[英]How to get size in bits Java

如何以大端順序獲取64位(不是字節)的String大小? 我從未在Java中進行過此類操作。 謝謝你的幫助 : )。

我想你想要這個:

String source = "0123456789";
byte[] byteArray = source.getBytes("UTF-16BE");
int sizeInBits = byteArray.length * 8;

資料來源: 為什么byteArray的長度為22而不是20?

字符串只能以char或字節為單位進行度量,並且只有在為編碼指定了特定的字符集后才能進行度量。

對於后者,它只是string.getBytes(charset).length

如果我們知道您實際上要做什么,可能會有所幫助。

Java在內部始終使用BigEndian順序工作,即使x86之類的平台使用LittleEndian。

在Java中,64位值存儲在long數據類型中。

現在最后一個問題是您要測量什么。 在字符串中,您可以計算字符數或使用指定編碼(例如,UTF-8,UTF-16,ISO-8859-1等)對字符串進行編碼時所占用的字節數。

假設您要計算字符串中的字符數,並希望將其作為64位數字獲取,則可以使用以下代碼:

String myString = "abcdefgh";
long charCount = myString.length;

如果要將charCount寫入文件或網絡連接,則可以使用DataOutputStream獲取BigEndian表示形式:

DataOutputStream out = new DataOutputStream(streamToWriteTo);
out.writeLong(charCount);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM