rõ ràng là java không có loại 'unsigned long', trong khi chúng tôi có thể sử dụng lâu để lưu trữ dữ liệu chưa được ký. Sau đó làm thế nào tôi có thể chuyển đổi nó thành một String hoặc chỉ in nó theo cách 'unsigned'?Cách chuyển đổi 'unsigned long' thành chuỗi trong java
7
A
Trả lời
12
Bạn cần sử dụng BigInteger không may, hoặc viết thói quen của riêng bạn.
Dưới đây là một lớp Unsigned giúp với những cách giải quyết
private static final BigInteger BI_2_64 = BigInteger.ONE.shiftLeft(64);
public static String asString(long l) {
return l >= 0 ? String.valueOf(l) : toBigInteger(l).toString();
}
public static BigInteger toBigInteger(long l) {
final BigInteger bi = BigInteger.valueOf(l);
return l >= 0 ? bi : bi.add(BI_2_64);
}
3
Bạn có thể sử dụng thư viện của bên thứ ba? Số UnsignedLongs.toString(long)
của ổi thực hiện điều này.
4
Như đã đề cập trong một different question trên SO, có một phương pháp cho rằng bắt đầu với Java 8:
System.out.println(Long.toUnsignedString(Long.MAX_VALUE)); // 9223372036854775807
System.out.println(Long.toUnsignedString(Long.MIN_VALUE)); // 9223372036854775808
Các vấn đề liên quan
- 1. Java tương đương với unsigned long long?
- 2. cách chuyển đổi ascii thành unsigned int
- 3. Chuyển đổi chuỗi có chứa số thập phân thành Long
- 4. Unsigned Long Long nằm ngoài phạm vi?
- 5. Chuyển đổi Long to Date trong Java trả về 1970
- 6. Tại sao không phải common_type <long, unsigned long> :: type = long long?
- 7. JNI: chuyển đổi unsigned int thành jint
- 8. unsigned long 0 <-1?
- 9. Chuyển đổi chuỗi thành Clob trong Java
- 10. Làm cách nào để chuyển đổi từ int thành Long trong Java?
- 11. Chuyển đổi ngầm định mất độ chính xác nguyên: 'long long' thành 'NSInteger' (aka 'int')
- 12. Cách chuyển chuỗi thành byte trong Java
- 13. Cách chuyển đổi loại Chuỗi thành loại Lớp trong java
- 14. Cách chuyển đổi chuỗi thành Reader trong java
- 15. Chuyển đổi chuỗi đầu vào thành chuỗi XML trong java
- 16. Chuyển đổi luồng thành chuỗi Java/Groovy
- 17. Chuyển đổi mảng MD5 thành chuỗi java
- 18. chuyển đổi chuỗi thành arraylist <Character> trong java
- 19. chuyển đổi chuỗi thành định dạng java.util.date trong java
- 20. Chuyển đổi chuỗi thành BigInteger
- 21. Chuyển đổi chuỗi thành Ngày tháng trong java
- 22. chuyển đổi một chuỗi ngày thành mili giây trong java
- 23. Chuyển đổi chuỗi int unsigned trả về kết quả sai
- 24. Chuyển đổi chuỗi thập lục phân thành số nguyên một cách hiệu quả trong C?
- 25. Làm thế nào để printf "unsigned long" trong C?
- 26. Chuyển đổi NSString thành unsigned char * cho ứng dụng iphone
- 27. Chuyển mảng char thành unsigned char *
- 28. Sự khác nhau giữa unsigned long/long/int trong c/C++ là gì?
- 29. Chuyển đổi StreamWriter thành OutputStream trong java?
- 30. Là 'dài unsigned' là hợp lệ như 'unsigned long' trong C?
những gì bạn có nghĩa là "in nó một cách unsigned"? – erencan