Comment detail
LL Golf Hole 6 - 10進数を2進数に基数変換する (Nested Flatten)This comment is reply for 7225 emasaka: pure bash。引数。2進数のみ。 ...(LL Golf Hole 6 - 10進数を2進数に基数変換する). Go to thread root.
どのシステムでも動くようにするなら、Bourne shellで愚直に。
e.g.
$ dec2bin() {
d=$1
t=''
[ $# -eq 0 ] && return 1
while [ $d -gt 0 ]; do
r=`expr $d % 2`
d=`expr $d / 2`
t="$r$t"
done
echo "${t:=0}"
return 0
} && dec2bin 255
# AIX 4.3.3.0, HP-UX B.11.00, Linux 2.4.2, SunOS 5.5.1で動作を確認。
なるほど。
で、POSIX Shell規格でしたらexprを呼ばずにいけるので、ちょっとだけ改造してみました。
1 2 3 4 5 | d=$1
while [ $d -gt 0 ];do
echo -n $(($d%2))
d=$(($d/2))
done
|
間違い、桁が逆でした。
1 2 3 4 5 6 | d=$1
while [ $d != 0 ];do
t=$(($d%2))$t
d=$(($d/2))
done
echo $t
|





silverwire
#7231()
Rating1/1=1.00
楽をするならこんなのはどうでしょう。 e.g. $ echo "obase=2; 255" | bc 11111111 # AIX 4.3.3.0, HP-UX B.11.00, Linux 2.4.2, SunOS 5.5.1で動作を確認。