Как я преобразовываю строку в число, интерпретируемое в определенной основе в сценарии удара?

Вы могли попробовать Круг дьявола:

Полностью находящаяся во власти трещиной программа для пятен и weirdos, кто хочет точное управление тем, что делают окна, когда они появляются. Если Вы хотите, чтобы все окна XChat были на настольных 3, в нижнем левом, в 40%-й прозрачности, можно сделать это.

Вот учебное руководство, касаясь основ.
Так как Круг дьявола больше не сохраняется, кто-то сделал продолжение: Devilspie2.
Я никогда не использовал последнего, поскольку первый все еще выполняет хорошо в моей системе и делает точно, что я хочу.

5
03.12.2014, 01:04
3 ответа

Из Bash Руководство:

Константы с ведущими 0 интерпретируются как восьмические числа. А. Ведущие 0x или 0x обозначают шестнадцатеричные.

Таким образом:

$ RECORD_HDR="003D"
$ RECORD_SIZE=$((0x$RECORD_HDR))
$ echo "$RECORD_SIZE"
61
4
27.01.2020, 20:40

Вот несколько способов:

с использованием калькулятора BC и явно настройка входного базы (вполне портативное):

RECORD_SIZE=`echo "ibase=16;$RECORD_HDR" | bc`

Используя арифметическую оценку с явным основанием (KSH и BASH, по крайней мере, не уверен, как портативная эта конструкция):

RECORD_SIZE=$((16#$RECORD_HDR))
0
27.01.2020, 20:40

Вы можете использовать библиотеку awk Velor :

$ velour -n 'print mt_basecon("3D", 16, 10)'
61

Или:

$ velour -n 'print mt_basecon(ARGV[1], 16, 10)' 3D
61
0
27.01.2020, 20:40

Теги

Похожие вопросы