[英]Creating a byte from an integer
我想使用整數創建一個字節。 例如,我有一個4的整數,我想創建一個值為4的字節。
byte test = 134;
我得到一個-122 wheras的字節值,我想要一個簡單的134字節值,以便以后可以將其轉換為ascii。
我不確定如何實現這一目標,但將歡迎您提供任何幫助。 謝謝。
在Java中, byte
s被解釋為帶符號(以及int
, short
s和long
s)。 134
的無符號字節值與-122
的有符號字節值等效。 如果您希望使用byte
的無符號值,則可以通過將該值存儲在8位以上的有符號整數中來實現,例如int
:
byte test = (byte) 134;
int unsignedByteValue = ((int) test) & 0xff;
// now unsignedByteValue == 134
0xff
的位掩碼確保unsignedByteValue
的低8位為1。 否則,帶負號的符號byte
將導致通過負號擴展產生帶負號的int
。
在Java中,所有字節均已簽名。 它們的值介於-128到127之間。如果您打印出字節,那么您將獲得全部。
但是Java的字符類型不同。 您應該改用以下代碼:
char test = 134;
char
類型是無符號的,將容納數字值最大為65,535的字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.