Форум — Development Аналог atoi() в Bash 0 1 Считал из файла в переменную шестнадцатеричное число, например fffffe6d. var=$(< file) Как теперь привести эту строку к численному типу для последующей мат. обработки? Ссылка
Велосипед: function conv(){ N=$(echo "$1" | tr [[:lower:]] [[:upper:]]); echo "obase=10; ibase=16; $N" | bc; } conv ff 255 conv fffffe6d 4294966893 Eddy_Em ☆☆☆☆☆ (26.04.12 15:01:18 MSK) Ссылка
Ответ на: комментарий от true_admin 26.04.12 15:42:48 MSK bash: calc: command not found A=$( printf '%d' «0x${var}» ) 102% POSIX ABW ★★★★★ (26.04.12 16:27:12 MSK) Показать ответы Ссылка
Ответ на: комментарий от ABW 26.04.12 16:27:12 MSK к чорту позикс true_admin ★★★★★ (26.04.12 16:30:52 MSK) Ссылка
Ответ на: комментарий от ABW 26.04.12 16:27:12 MSK $ var=fffffe6d;A=$(printf "%d\n" 0x$var);echo $A 4294966893 $ var=ffff;A=$(printf "%d\n" 0x$var);echo $A 65535 imb ★★ (26.04.12 16:51:57 MSK) Ссылка
$ let a=0xffff $ echo $a 65535 $ a=$(( 0xff )) $ echo $a 255Первое башизм, второе корректно с точки зрения позикса kim-roader ★★ (26.04.12 17:03:56 MSK) Показать ответ Ссылка
Ответ на: комментарий от kim-roader 26.04.12 17:03:56 MSK Как все, оказывается, элементарно...А bash, оказывается, long использует: echo $(( 0xfffffffffffffff )) 1152921504606846975 echo $(( 0xffffffffffffffff )) -1 Зато мой велосипед с еще большими числами работает: conv fffffffffffffffffffff 19342813113834066795298815 Eddy_Em ☆☆☆☆☆ (26.04.12 17:50:49 MSK) Показать ответ Ссылка
Ответ на: комментарий от Eddy_Em 26.04.12 17:50:49 MSK Зато мой велосипед с еще большими числами работаетТвой велосипед работает с длинной арифметикой. Так что он будет работать на совсем любых числах. kim-roader ★★ (26.04.12 18:47:14 MSK) Ссылка