Ist mein Prozessor 32 oder 64 Bit?
Nicht zu verwechseln mit Ist mein Betriebssystem 32-Bit oder 64-Bit .
Dieser ist sehr einfach. Sagen Sie mir, ob meine CPU 64-Bit-Anweisungen unterstützt. Wenn meine CPU 32-Bit-Anweisungen unterstützt, drucken Sie '32'. Wenn meine CPU 64-Bit-Anweisungen unterstützt, drucken Sie '64'. Wenn mein Prozessor andere Befehlslängen naiv unterstützt, drucken Sie 'other'.
Ihr Programm muss sowohl im 32- als auch im 64-Bit-Befehlsmodus ausgeführt werden. Wenn es richtig interpretiert wird, muss es sowohl im 32- als auch im 64-Bit-Interpreter ausgeführt werden.
Testfälle:
Bogen: x86, i386, i686, RiscV32
Ausgabe: '32'
Bogen: x86-64, x64, x86_64, RiscV64
Ausgabe: '3264'
Bogen: R700
Ausgang '32other'
Es gelten die üblichen Code-Golf- Regeln.
Viel Glück!
Antworten
Bash + Coreutils, 33 25 Bytes
lscpu|grep -Po '..(?=-b)'
Versuchen Sie es nicht online! Funktioniert nicht, da die TIO-Sandbox lscpu nicht unterstützt. Bearbeiten: 8 Bytes dank @DigitalTrauma gespeichert.
Rost , 45 Bytes
||if std::usize::MAX>4294967295{3264}else{32}
Probieren Sie es online aus! (Cross-Compiler für 32-Bit lokal durch eine Werkzeugkette für i686 Installation Zum Beispiel:. stable-i686-pc-windows-msvc)
Ich kann dies nicht wirklich auf Architekturen testen, die "andere" Befehlslängen unterstützen, aber dies kann verwendet werden, um nach 32-Bit- oder 64-Bit-Architekturen zu suchen. Dies ist kürzer als die eingebaute Verwendung cfg!(target_pointer_width="64").