Il mio processore è a 32 o 64 bit?
Da non confondere con Il mio sistema operativo è a 32 o 64 bit .
Questo è molto semplice, dimmi se la mia CPU supporta o meno le istruzioni a 64 bit. Se la mia CPU supporta istruzioni a 32 bit, stampa "32", se la mia CPU supporta istruzioni a 64 bit, stampa "64", se il mio processore supporta ingenuamente altre lunghezze di istruzioni, stampa "altro".
Il programma deve essere eseguito su entrambe le modalità di istruzione a 32 e 64 bit e, se interpretato correttamente, eseguire correttamente su interpreti a 32 e 64 bit.
Casi test:
Arco: x86, i386, i686, RiscV32
Uscita: '32'
Arch: x86-64, x64, x86_64, RiscV64
Output: '3264'
Arco: R700
Uscita '32other'
Si applicano le solite regole del code-golf .
Buona fortuna!
Risposte
Bash + coreutils, 33 25 byte
lscpu|grep -Po '..(?=-b)'
Non provarlo online! Non funzionerà perché la sandbox TIO non supporta lscpu. Modifica: 8 byte salvati grazie a @DigitalTrauma.
Ruggine , 45 byte
||if std::usize::MAX>4294967295{3264}else{32}
Provalo online! (Cross-compilazione per i 32 bit a livello locale con l'installazione di una toolchain per i686 Ad esempio:. stable-i686-pc-windows-msvc)
Non è possibile testarlo su architetture che supportano istruzioni di "altre" lunghezze, ma può essere utilizzato per verificare architetture a 32 o 64 bit. Questo è più breve del modo integrato che utilizza cfg!(target_pointer_width="64").