2進数から10進数へ変換
C言語で、2進数から10進数に変換するプログラムを作ろうと思っています。
手計算で行う場合は2進数の
下1桁目×1
下2桁目×2
下3桁目×4。。。と計算しています。
下○桁目を取り出す方法を考えているのですが、思いつきません。
3桁の2進数を変換するプログラム(とりあえず101を変換することを考えて・・・)を書いてみたのですが、101を考えすぎたためか上手くいきませんでした。
最終的には10進数でintの範囲内程度の2進数の変換ができるプログラムを書きたいと思っています。
アドバイスをお願いします。
ちなみに、考えてみたプログラムは以下の通りです。
101以外で上手く変換できませんね・・・ ここに貼り付けるのが恥ずかしいです。
#include <stdio.h>
main()
{
int x ,i ,z[3];
scanf("%d",&x);
z[0]=x/100*4;
z[1]=(x/10-10)*2;
z[2]=(x-110)*1;
printf("%d",z[0]+z[1]+z[2]);
return 0;
}
お礼
すぐに解説していただきありがとうございます。