Warum:Modulooperator gibt unterschiedliche Ergebnisse mit führenden Nullen
int test() {
return 00101 % 10;
}
Rückkehr 5
, während:
int test() {
return 101 % 10;
}
kehrt 1
? Ich kann mir keine Erklärung vorstellen.
Warum:Modulooperator gibt unterschiedliche Ergebnisse mit führenden Nullen
int test() {
return 00101 % 10;
}
Rückkehr 5
, während:
int test() {
return 101 % 10;
}
kehrt 1
? Ich kann mir keine Erklärung vorstellen.
Integer-Literale beginnend mit 0
wie
00101
ist eigentlich ein Oktal-Konstante.
00101
ist Oktalwert die 65
in dezimaler ist es so 5
zurückgibt.
00101 ist in Oktal, die bis 65 in dezimal gleich ist, so dass Deshalb wird der Modulo-Operator uns immer 5. geben können Sie Oktal tun converstion in Dezimalzahlen auf diesen Link http://www.rapidtables.com/convert/number/octal-to-decimal.htm
Dies ist die verwirrende Konvention Es widerspricht völlig der Art, wie Menschen Zahlen betrachten. –
Vielen Dank! Gibt es eine Möglichkeit, dies zu umgehen? Ich bekomme Werte und ich weiß nicht, wie viele führende Nullen es geben wird. –
@KosmasKatsoulotos Wie haben Sie die Werte erhalten? Sie begegnen diesem Problem nicht viel anders als dem Umgang mit Literalen. –