Ist mein Prozessor 32 oder 64 Bit?

Sep 10 2020

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

3 Neil Sep 10 2020 at 15:08

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.

1 TehPers Sep 11 2020 at 00:22

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").