Мой процессор 32 или 64 бит?
Не путать с 32-битной или 64-битной моей ОС .
Это очень просто, скажите мне, поддерживает ли мой процессор 64-битные инструкции. Если мой процессор поддерживает 32-битные инструкции, выведите «32», если мой процессор поддерживает 64-битные инструкции, выведите «64», если мой процессор наивно поддерживает другие длины инструкций, выведите «другое».
Ваша программа должна работать как в 32-битном, так и в 64-битном режимах инструкций, и при правильной интерпретации должна работать как в 32-битном, так и в 64-битном интерпретаторах.
Тестовые случаи:
Arch: x86, i386, i686, RiscV32
Выход: '32'
Arch: x86-64, x64, x86_64, RiscV64
Выход: '3264'
Арка: R700
Выход '32other'
Применяются обычные правила игры в гольф .
Удачи!
Ответы
Bash + coreutils, 33 25 байт
lscpu|grep -Po '..(?=-b)'
Не пробуйте онлайн! Не будет работать, потому что песочница TIO не поддерживает lscpu. Изменить: сохранено 8 байтов благодаря @DigitalTrauma.
Ржавчина , 45 байт
||if std::usize::MAX>4294967295{3264}else{32}
Попробуйте онлайн! (Кросс-компилятор для 32-разрядных локально путем установки набора инструментов для i686 Например:. stable-i686-pc-windows-msvc)
Невозможно проверить это на каких-либо архитектурах, которые поддерживают «другие» длины инструкций, но это можно использовать для проверки 32-битных или 64-битных архитектур. Это короче, чем при использовании встроенного cfg!(target_pointer_width="64").