Tôi có một số dữ liệu trong các biến số int
trong Java (nằm trong khoảng từ 0 đến 64000). Làm thế nào để chuyển đổi sang byte số nguyên này? Tôi chỉ cần hai byte thấp hơn từ int
(phạm vi là ok). Làm thế nào để trích xuất này?Nhận hai byte thấp hơn từ biến int
11
A
Trả lời
22
Bạn có thể lấy byte thấp nhất từ số nguyên bởi ANDing với 0xFF
:
byte lowByte = (byte)(value & 0xFF);
này hoạt động vì 0xFF
có zero bit ở khắp mọi nơi trên các byte đầu tiên.
Để có được thứ hai thấp nhất-byte, bạn có thể lặp lại thủ thuật này sau khi chuyển xuống tất cả các bit trong các điểm số 8:
byte penultimateByte = (byte)((value >> 8) & 0xFF);
3
Bạn không cần phải làm và hoạt động để có được giá thấp hơn byte chỉ đưa nó vào byte và nhận byte thấp hơn trong biến byte.
thử sau đây cả hai sẽ cung cấp cho bạn kết quả tương tự
short value = 257;
System.out.println(value);
byte low = (byte) value;
System.out.println("low: " + low);
byte high = (byte)(value >> 8);
System.out.println("high: " + high);
value = 257;
System.out.println(value);
low = (byte) (value & 0xFF);
System.out.println("low: " + low);
high = (byte) ((value >> 8) & 0xFF);
System.out.println("high: " + high);
hoặc thử nó trên Ideone.com
Các vấn đề liên quan
- 1. Làm cách nào để nhận được 8 bit int thấp hơn?
- 2. Mô phỏng các biến int với byte hoặc ngắn
- 3. cách đọc int đã ký từ byte trong java?
- 4. Xác thực MVC Thấp hơn/Cao hơn giá trị khác
- 5. Tại sao một số không dấu int 1 thấp hơn char y -1?
- 6. Chuyển đổi từ byte sang int trong java
- 7. Cách chuyển đổi từ [] byte sang int trong Lập trình
- 8. Nhận một bit cụ thể từ byte
- 9. Nhận byte từ std :: string in C++
- 10. Thêm hai biến unsigned char và kết quả là int
- 11. Thấp hơn các ổ cắm bsd chung mức thấp
- 12. C# int byte chuyển đổi
- 13. API để nhận IL từ mảng byte
- 14. Chuyển trường hợp đối với hai biến INT
- 15. Số chính xác cao hơn/thấp hơn của IEEE
- 16. sql server 4 byte unsigned int
- 17. Java unsigned byte [2] để int?
- 18. nhận byte từ chuỗi unicode trong python
- 19. Chỉ nhận một byte từ ổ cắm
- 20. Chuyển đổi n-byte int thành byte trong python3
- 21. Biến lớp int int vs mảng
- 22. Đọc hai byte thành một số nguyên?
- 23. bit thấp hơn và cao hơn là gì?
- 24. Rõ ràng thấp hơn 16 bit
- 25. so sánh chức năng trong giới hạn thấp hơn
- 26. biến biến thành hàm int vs round()
- 27. Gán int vào byte trong java?
- 28. 4 byte unsigned int trong SQL Server?
- 29. Tại sao toán tử xor trên hai byte tạo ra một int?
- 30. vọt Scala thấp hơn loại và hiệp phương sai
1 mặc dù nó không phải là một thủ thuật, nó được gọi là "thay đổi số học" ;-) –