002
03.03.2009, 23:35 Uhr
0xdeadbeef
Gott (Operator)
|
Das Problem ist natürlich, dass eine Zahl durchaus in mehreren Zahlensystemen sinnvoll sein kann. Nimm zum Beispiel an, dass der Benutzer "10" eingibt - ist das jetzt binär, oktal, dezimal, hexadezimal, oder vielleicht noch mit einer ganz anderen Basis gemeint?
Es gibt zwei Konventionen, die sich in vielen Bereichen wiederfinden - wenn 0x vorne dransteht, etwa "0x10", ist das als hexadezimale Zahl gemeint, wenn eine 0 vorne dransteht, etwa "010", oktal. Binär wird selten eingegeben, eine Konvention dafür ist mir nicht bekannt - da hättest du also freie Hand. b10 oder so böte sich an - in jedem Fall würde ich ein Präfix vorziehen, das ist dann einfacher zu parsen.
Allerdings macht es durchaus Sinn, den Benutzer vorher nach der Basis zu fragen - ich würde sogar so weit gehen, ihn eine Zahl als Radix eingeben zu lassen und das ganze dann durch strtoul zu jagen. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |