Tại sao StrToInt ('X5') trả về 5 trong Delphi? Là một số ký hiệu khoa học hoặc một cái gì đó giống như nó? Có một số ký tự khác sẽ được chuyển đổi sang Integer không?Tại sao StrToInt ('X5') trả về 5 trong Delphi?
6
A
Trả lời
11
Không biết Delphi, tôi cược rằng "X" làm cho hàm giả định giá trị là thập lục phân. Kể từ 0x5 == 5, có vẻ như nó đang hoạt động. Hãy thử X10 và xem bạn có quay lại không 16.
1
Đó là ký hiệu hex. Hãy thử XF để xem nó trả lại 15.
0
Có thể là hexadecimal ký hiệu.
X chỉ ra rằng số sau là hệ thập lục phân (0-9 + A-F).
11
Trong Delphi, giá trị thập lục phân được đánh dấu bằng $ prefix:
a := $10; // => a = 16
Nhưng vì trong một số ngôn ngữ khác (ví dụ C) X được sử dụng để đánh dấu các giá trị thập lục phân, StrToInt chức năng hỗ trợ cả $ và tiền tố X, vì vậy cả hai mã dưới đây đều trả lại 16:
a := StrToInt('x10'); // => a = 16
a := StrToInt('$10'); // => a = 16
F là 15, không 16. – Pesto