Vì vậy, tôi đã suy nghĩ, làm thế nào để bạn chuyển đổi một phần thập phân thành một phần thập lục phân? Một số phương pháp để chuyển đổi là gì và có cắt giảm ngắn hay không?Làm cách nào để chuyển đổi các phân số thập phân thành các phân số thập lục phân?
Trả lời
Bạn có thể sử dụng thuật toán này:
- Hãy là một phần phân số của số (tức là số nguyên phần tương đương với zero)
- Multiply bởi phần nguyên
- Convert to thập lục phân và đặt nó xuống
- Đi tới bước 1
Ví dụ: chúng ta hãy tìm hiểu đại diện thập lục phân cho pi = 3,141592653589793 ...
nguyên phần là điều hiển nhiên - 0x3; như đối với phần thập phân (,141592653589793), chúng tôi có
0.14159265358979 * 16 = 2.26548245743664; int part 2 (0x2); frac 0.26548245743664
0.26548245743664 * 16 = 4.24771931898624; int part 4 (0x4); frac 0.24771931898624
0.24771931898624 * 16 = 3.96350910377984; int part 3 (0x3); frac 0.96350910377984
0.96350910377984 * 16 = 15.41614566047744; int part 15 (0xF); frac 0.41614566047744
0.41614566047744 * 16 = 6.65833056763904; int part 6 (0x6); frac 0.65833056763904
0.65833056763904 * 16 = 10.53328908222464; int part 10 (0xA); ...
Vì vậy pi (hệ thập lục phân) = 3.243F6A ...
thể (C#) thực hiện
public static String ToHex(Double value) {
StringBuilder Sb = new StringBuilder();
if (value < 0) {
Sb.Append('-');
value = -value;
}
// I'm sure you know how to convert decimal integer to its hexadecimal representation
BigInteger bi = (BigInteger) value;
Sb.Append(bi.ToString("X"));
value = value - (Double)bi;
// We have integer value in fact (e.g. 5.0)
if (value == 0)
return Sb.ToString();
Sb.Append('.');
// Double is 8 byte and so has at most 16 hexadecimal values
for (int i = 0; i < 16; ++i) {
value = value * 16;
int digit = (int) value;
Sb.Append(digit.ToString("X"));
value = value - digit;
if (value == 0)
break;
}
return Sb.ToString();
}
thử nghiệm
Console.Write(ToHex(Math.PI)); // <- returns "3.243F6A8885A3"
Bạn có thể lấy phần phân số bằng cách nhân số đầu vào với một số nguyên hex. Sau đó, bạn có thể sử dụng chuyển đổi số nguyên-sang-hex thông thường. Ví dụ: để lấy 6 ký tự sau dấu thập phân (hexa), nhân phần phân số với 0x1000000.
Đây là một số mã Java sẽ thực hiện.
String toHexFraction(double x, int digits) {
// Get fractional part.
if (x < 0.0)
x = 0.0 - x;
x = x % 1.0;
// Shift left by n digits
long multiplier = (1L << (digits * 4));
long fraction = (long)(x * multiplier);
// Convert integer to hex string.
// String should have at least n digits; prefix with zeros if not.
String hex = Long.toHexString(fraction);
String padding = "000000000000000";
hex = padding.substring(0, digits - hex.length()) + hex;
return hex;
}
String toHexInteger(double x) {
long whole = (long) x;
String prefix;
if (whole < 0) {
// Long.toHexString treats the number as an unsigned integer.
whole = 0 - whole;
prefix = "-";
} else {
prefix = "";
}
return Long.toHexString(whole);
}
String toHex (double x, int digits) {
return toHexInteger(x) + "." + toHexFraction(x, digits);
}
Số chữ số sẽ bị giới hạn bởi số nguyên lớn nhất mà bạn có thể biểu thị bằng gấp đôi.
Điều này cũng có tác dụng đối với các căn cứ hình vuông khác, ví dụ: để thay đổi bát phân digits * 4
thành digits * 3
và sử dụng Long.toOctalString
.
- 1. php chuyển đổi số thập phân sang thập lục phân
- 2. Chuyển đổi giữa số thập phân, nhị phân và thập lục phân trong Swift
- 3. Số thập lục phân C#
- 4. Python Chuyển đổi phân số thành số thập phân
- 5. Chuyển đổi số bát phân và số thập lục phân thành cơ số 10
- 6. Chuyển đổi chuỗi thập lục phân thành chuỗi nhị phân
- 7. Chuyển đổi số thập phân thành nhị phân trong Haskell
- 8. Chuyển đổi số thập phân thành nhị phân trong R?
- 9. Python Hệ thập lục phân
- 10. Python: Chuyển đổi chuỗi thành số thập phân số
- 11. Java thập lục phân
- 12. Chuyển đổi số thập phân sang nhị phân trong python
- 13. Hệ thập lục phân Dấu phẩy động thập phân
- 14. Chuyển đổi chuỗi thập lục phân thành int
- 15. Làm cách nào để đặt EditText thành đầu vào của chỉ các số thập lục phân?
- 16. Làm thế nào để chuyển đổi một số thập phân thành nhị phân trong Swift?
- 17. python cách chuyển đổi ngày giờ thành số thập phân
- 18. SQL Cách chuyển đổi một số thập phân thành chuỗi
- 19. Chuyển đổi số thập lục phân thành chuỗi thành số âm, trong Perl
- 20. In một mảng số nguyên như số thập lục phân
- 21. Chuyển mảng byte sang số thập phân
- 22. cách phân tích cú pháp thập phân thập phân hoặc thập phân trong Python
- 23. C# Chuyển đổi đối tượng thành số thập phân
- 24. Chuyển đổi chuỗi thập lục phân (hex) thành một chuỗi nhị phân
- 25. Chuyển đổi int thành BigDecimal với số thập phân - Java
- 26. Số Oracle để C# số thập phân
- 27. Chuyển đổi chuỗi có chứa số thập phân thành Long
- 28. lấy phần thập phân của số thập phân
- 29. Chuyển đổi một phần văn bản thành số thập phân
- 30. Chuyển đổi thập phân sang thập phân trong lisp chung
một số ngôn ngữ cụ thể? – joseramonc
Ý của bạn là gì? @JoseRamonCamacho? Chuyển đổi .2002 (base10) sang.? (Base16) – Dusteh
như java, ruby, python? – joseramonc