Richtiger Weg zur Angabe der Basis 10 (Dezimalzahl) in der Informatik

2211
user2018084

Der richtige Weg, Hex oder Basis 16 zu bezeichnen, ist das Voranstellen 0x

Was ist der richtige Weg, um Dezimal / Basis 10 zu bezeichnen?

1
Sie müssen nicht die Basis angeben. Wenn Sie nicht "Basis 16" oder "Basis 2" angeben, wird "Basis 10" angenommen. Ramhound vor 9 Jahren 1
Einige Sprachen kennzeichnen Octal mit einer führenden 0. ChrisInEdmonton vor 9 Jahren 0
@ Ramhound Ich weiß, dass du Recht hast. Die meisten würden davon ausgehen, dass es sich um die Basis 10 handelt, und es ist nicht notwendig, das anzugeben, obwohl ich weiß, dass es eine Möglichkeit gibt, die Basis 10 explizit zu bezeichnen. user2018084 vor 9 Jahren 0
Für die Downvotes gehe ich von zwei Dingen aus: 1) Es ist nicht notwendig. Ich weiß das, aber ich weiß auch, dass es eine formale Möglichkeit gibt, die Basis 10 oder 2 explizit zu bezeichnen. Sie gehen davon aus, dass es trivial ist, sie im Internet zu finden, aber ich konnte sie nicht bei Google finden. Wenn Sie sich also die Zeit nehmen könnten poste die Antwort, während du abstimmst, du würdest mich zu einem glücklichen Camper machen! :) user2018084 vor 9 Jahren 0
"Es ist trivial, es im Internet zu finden, aber ich konnte es nicht bei Google finden" macht keinen Sinn ... DavidPostill vor 9 Jahren 0
Das Synonym für eine Zahlenbasis lautet * radix *. Ich habe gelegentlich die Dezimalzahl in einer Zahl mit dem Zusatz "R10" angegeben, z. B. 123R10. Das war aber nur Text, keine Programmiersprache. sawdust vor 9 Jahren 0
Warum? Wenn es trivial ist zu finden, sollten Sie es selbst finden können: / DavidPostill vor 9 Jahren 0
Da Sie im Fragen-Titel Informatik haben, sollten Sie sich vielleicht über [Computer Science Stack Exchange] (http://cs.stackexchange.com/) informieren. DavidPostill vor 9 Jahren 0
@ user2018084 - Ich kann mit Sicherheit sagen, dass Sie keine Downvotes erhalten, weil das formale Synonym bekannt ist oder Sie keinen Aufwand gezeigt haben. Ramhound vor 9 Jahren 0
Wenn Sie einen Aufsatz oder eine Dokumentation erstellen, können Sie die Indexnotation verwenden, wenn Ihre Typografie dies zulässt. oder Sie können Ihre eigene Notation definieren, z. B. durch Angabe eines Präfixes "_In den folgenden Beispielen bezeichnet 0xNNN eine Zahl in hexadezimaler Schreibweise und 0dNNN eine Zahl in Dezimalschreibweise_". Wenn Sie keine Kurzdarstellung benötigen, schreiben Sie an der Zahl einfach "(Basis 10)" in Klammern. In einem Programmierkontext sind Sie durch die Sprache, die Sie verwenden, eingeschränkt. In einem geschriebenen Text können Sie jedoch alles verwenden, von dem Sie glauben, dass es für die Empfänger am klarsten ist. AFH vor 9 Jahren 0

3 Antworten auf die Frage

2
DavidPostill

Wie bezeichne ich Dezimal / Basis 10?

In mathematischen Zahlensystemen ist die Basis oder Basis die Anzahl eindeutiger Ziffern, einschließlich Null, die zur Darstellung von Zahlen in einem Positionsnummernsystem verwendet werden. Für das Dezimalsystem (das heute gebräuchlichste System) ist die Basis z. B. zehn, da die zehn Ziffern von 0 bis 9 verwendet werden.

In jedem Positionsnummernsystem (mit Ausnahme von unären, wenn die Basis 1 ist), werden die Zahl x und ihre Basis y herkömmlich als geschrieben , obwohl für die Basis 10 der Index normalerweise angenommen und nicht geschrieben wird, da dies die gebräuchlichste Ausdrucksweise ist Wert. Zum Beispiel stellt (im Dezimalsystem) die Zahl einhundert dar, während (im Binärsystem mit der Basis 2) die Zahl vier darstellt.

Quelle Radix


Lesen Sie weiter

So wie die Suffixnotation "E" den als Hochschrift geschriebenen Exponenten ersetzen kann, habe ich an Stelle des Radix-Indexes ein "R" -Suffix gesehen. sawdust vor 9 Jahren 0
1
LawrenceC

Das 0und das 0xPräfix ist die Art und Weise der C-Programmiersprache, Oktal / Hex auszudrücken, und ist aufgrund der Beliebtheit und Allgegenwart von C populär geworden. Diese Konvention selbst könnte aus früheren Sprachen oder Konventionen stammen.

Im Laufe der Zeit wurden verschiedene andere Standards zum Ausdrücken verwendet. 6502 vormontiertes Sechskant mit einem $. In vielen Z80- und frühen x86-Baugruppen sehen Sie ein Nachlauf H. Einige Dialekte von BASIC verwendeten ein &oder ähnliches &H.

Dies wird also spezifisch für die Programmiersprache sein, mit der Sie arbeiten. Viele Sprachen, vor allem diejenigen, die seit den späten 80ern erstellt wurden, verwenden die Standards von C. Außerhalb eines Programmiersprachenkontexts sollten Sie wahrscheinlich mathematische Notationsstandards verwenden oder ein Wort schreiben, das die Basis ("Basis 10" oder "Dezimal") bezeichnet, wenn Verwirrung auftreten kann.

1
TOOGAM

Mir gefällt die Antwort aus Ramhounds Kommentar wirklich sehr. Wenn Sie einfach keine Basis angeben, wird allgemein davon ausgegangen, dass es sich um Basis 10 handelt.

Wenn Sie sehr explizit sein möchten, können Sie HTML " 5<SUB>10</SUB>" (oder " 5<subUB>10</sub>" für diejenigen, die HTML in Kleinbuchstaben bevorzugen) verwenden, um als "5 10 " gerendert zu werden . Im Text können Sie "5 Basis 10" verwenden.

Beachten Sie, dass 0x keine universelle Methode zur Angabe von Hexadezimalzahlen ist. Das 0x-Präfix wird von der Sprache von C und von anderen Sprachen verwendet, die C ähneln. In einer typischen x86-Assembly wird ein H-Suffix verwendet (also ist 0x768 in C dasselbe wie 768H in x86-Assembly). Embedded-Programmierung: Zahlen besagt, dass das H-Suffix "Intel and TI Assembler" ist. Dieselbe Webseite weist darauf hin, dass für "Freescale-Assembler" die Syntax darin ist, ein Dollarzeichen (" $768") voranzustellen .

In allen diesen Sprachen (C-, Intel Assembly- und Freescale-Assembly) besteht die Syntax für eine Basis-10-Nummer darin, nur die Nummer anzugeben, ohne dass ein spezieller Text vorangestellt oder angefügt werden muss.

Andere Methoden können verwendet werden (z. B. das Hinzufügen eines Unterstrichs gefolgt von einem Radix-Wert, der möglicherweise einfacher einzugeben ist als die Verwendung der Subskription von Zeichensätzen), oder Sie können eine andere benutzerdefinierte Methode verwenden, die Sie zu Beginn Ihres Schreibens / Vortrags beschreiben / Was auch immer, aber wenn Sie nichts Bestimmtes angeben, neigen die Menschen dazu, ihre Annahmen zu verwenden.

Ein Teil der Kommunikation besteht darin, Ihr Publikum zu kennen. (Dies ist eine grundlegende Kommunikationstheorie, die nicht nur auf Computer beschränkt ist.) Wenn Ihre Zielgruppe eine Reihe von C-Programmierern enthält, impliziert 0x nur Hexadezimal. Wenn Ihre Zielgruppe dies nicht tut, sieht 0x768 wie ein Multiplikationsproblem aus und entspricht Null. Wenn Sie mit einer Gruppe von Personen interagieren, die mit einer bestimmten Syntax / Sprache / Konvention vertraut sind, verwenden Sie das, was ihnen vertraut ist.

Die Kunst der Computerprogrammierung ist im Grunde eine Möglichkeit, die Vorstellungen dessen, was ein Computer tun soll, zu vermitteln. Die beste Art zu kommunizieren ist im Allgemeinen das, was das Publikum erwartet. Und wie Sie aus mehreren Kommentaren hier sehen können, wird allgemein davon ausgegangen, dass Basis 10 angenommen wird, es sei denn, es gibt einen Hinweis (wie eine Notation wie "0xblah") oder einen anderen Grund (wie Kontext), um zu glauben, dass die Basis etwas anderes ist.

Ein anderes Beispiel: Wenn ich 99-10-12-16-23-20 sehe, denke ich nicht automatisch an "18". Ich beginne zu denken, dass dies wie eine MAC-48-Adresse einer Netzwerkkarte aussieht, die in dem von der IEEE-OUI-Liste und Microsoft Windows (und nicht von Unix) verwendeten Format geschrieben ist ... interessant, dass sie keine Ziffern enthält, die ausschließlich aus Hexadezimalwerten bestehen. Wenn ich jedoch eine Netzwerkadresse erwartet hätte, würde ich vermutlich davon ausgehen, dass dies wahrscheinlich hexadezimale Ziffern sind.

Ich habe gesehen, dass Ausbilder von Kursen auf College-Niveau manchmal eine Reihe von Zahlen schreiben und sich sehr klar über die Grundlagen informieren. In diesen (nicht sehr verbreiteten) Situationen wurde normalerweise die tiefgestellte Schreibweise verwendet, es sei denn, sie wussten, dass die Handschrift nachlässig war. In diesem Fall würden sie auch einige Klammern hinzufügen, wie die Antwort von DavidPostill zeigt.