Wenn eine Pythonzeichenfolge in ein int konvertiert wird, z. a = int("123",10)
, (konvertieren Sie die Zeichenfolge "123" in eine ganze Zahl in der Basis 10) eine C-Funktion wird aufgerufen.
Zuerst überprüft er, dass die gegebene Zählbasis Base> = 2 und < = 36, oder 0 (Error anderweitig)
nächstes es ignoriert alle führenden Leerzeichen. (So dass " 123" = "123"
),
und prüfen, ob die Zahl als positiv markiert '+'
oder negativ '-'
Wenn die Basis 0 ist, überprüft es, wenn die Zeichenfolge mit '0x','0o', '0b', '0'
beginnen und legt die Basis jeweils (hexadezimal, oktal , binär, dezimal).
Beachten Sie, dass die Standardbasis 10 (Dezimal) ist, wenn keine Basis angegeben wird.
Es geht dann den Zeichen-Array in eine Reihe zu drehen, um den Algorithmus im Code Kommentar zu den sind link posted by Paul Kehrer
Leerzeichen am Ende beschrieben ist auch ignoriert, und Fehler werden, wenn needed- beispielsweise ausgelöst, wenn ein Raum ist in der Mitte der Zeichenfolge, gefolgt von einer Zahl, oder wenn es ein Nicht-Nummernzeichen gibt.
Können Sie die C-Funktion bereitstellen, damit wir nicht selbst danach suchen müssen? –
"Ich möchte verstehen, wie es funktioniert, aber ich verstehe die Sprache, in der es geschrieben ist, nicht und möchte, dass du es mir erklärst, anstatt es zu lernen", interpretierte ich diese Frage. –
@ TadhgMcDonald-Jensen, bitte überlegen Sie, Ihren Interpreter zu aktualisieren – micgeronimo