久々にawkでプログラミング(10進数を16進数に変換)

なんとなく久々にawkでプログラミングしてみた。
10進数を16進数にする簡単なプログラムだけど。
以下ソース


#10進法から16進法
# gawk -f sinnpou.awk number

{
number = $0;
i = 0;
while(number >= 16){
ans[i] = number % 16;
if(ans[i] == 10){
ans[i] = "a";
}else if(ans[i] == 11){
ans[i] = "b";
}else if(ans[i] == 12){
ans[i] = "c";
}else if(ans[i] == 13){
ans[i] = "d";
}else if(ans[i] == 14){
ans[i] = "e";
}else if(ans[i] == 15){
ans[i] = "f";
}
i++;
number = int(number / 16);
}
if(number == 10){
number = "a";
}else if(number == 11){
number = "b";
}else if(number == 12){
number = "c";
}else if(number == 13){
number = "d";
}else if(number == 14){
number = "e";
}else if(number == 15){
number = "f";
}
printf number;

for(j = i;j >= 0;j--){
printf ans[j];
}
}

$0を36で実行してみると、24という答えが出た。
一応できてるっぽい