Tại sao:Modulo điều hành cho kết quả khác nhau với zero hàng đầu
int test() {
return 00101 % 10;
}
trở 5
, trong khi:
int test() {
return 101 % 10;
}
lợi nhuận 1
? Tôi không thể nghĩ ra lời giải thích.
Tại sao:Modulo điều hành cho kết quả khác nhau với zero hàng đầu
int test() {
return 00101 % 10;
}
trở 5
, trong khi:
int test() {
return 101 % 10;
}
lợi nhuận 1
? Tôi không thể nghĩ ra lời giải thích.
literals Integer bắt đầu với 0
như
00101
thực sự là một hằng số bát phân.
00101
là giá trị bát phân là 65
tính bằng số thập phân để trả về 5
.
00101 là trong bát phân tương đương với 65 trong số thập phân, vì vậy đó là lý do tại sao các nhà điều hành mô đun sẽ luôn luôn cung cấp cho chúng tôi 5. Bạn có thể làm bát phân để thập phân converstion vào liên kết này http://www.rapidtables.com/convert/number/octal-to-decimal.htm
Đây là ước khó hiểu nhất không bao giờ, nó hoàn toàn mâu thuẫn với cách con người nhìn vào con số. –
Cảm ơn rất nhiều! Có cách nào để làm việc này? Tôi nhận được giá trị và tôi không biết có bao nhiêu zeroes hàng đầu sẽ có. –
@KosmasKatsoulotos Bạn nhận được các giá trị như thế nào? Bạn không gặp phải vấn đề này nhiều hơn là đối phó với chữ. –