2進数表示
Posted: 2014年10月08日(水) 23:27
入力された変数を左に順1bitシフトして、その内容を表示
但し、printf文で2進数表示はできないので、変数を'0'と'1'の文字列に表示させるプログラム
を作っています。下記のプログラムコードで作っていますが、思ったような出力になりません
例えば5を入力した場合、 00000000 00000000 00000000 00000101のような出力にしたいのですが、
どのようにすればいいでしょうか?
#include<stdio.h>
void sub(int a, char *pbuf);
void main(void)
{
char a[32];
int c = 0;
int d = 0;
scanf_s("%d", &c);
sub(c, a);
printf("%s\n", a);
for (d = 0; d <= 32; d++);
{
c = (c << 1);
printf("%s\n", c);
}
}
void sub(int a, char *pbuf)
{
int amari = 0;
int i;
for (i = 0; i <= 32; i++)
{
if (a < 1)
{
pbuf = '0';
}
else
{
amari = a % 2;
a = a / 2;
}
if (amari == 1)
{
pbuf = '1';
}
else
{
pbuf = '0';
}
}
}
但し、printf文で2進数表示はできないので、変数を'0'と'1'の文字列に表示させるプログラム
を作っています。下記のプログラムコードで作っていますが、思ったような出力になりません
例えば5を入力した場合、 00000000 00000000 00000000 00000101のような出力にしたいのですが、
どのようにすればいいでしょうか?
#include<stdio.h>
void sub(int a, char *pbuf);
void main(void)
{
char a[32];
int c = 0;
int d = 0;
scanf_s("%d", &c);
sub(c, a);
printf("%s\n", a);
for (d = 0; d <= 32; d++);
{
c = (c << 1);
printf("%s\n", c);
}
}
void sub(int a, char *pbuf)
{
int amari = 0;
int i;
for (i = 0; i <= 32; i++)
{
if (a < 1)
{
pbuf = '0';
}
else
{
amari = a % 2;
a = a / 2;
}
if (amari == 1)
{
pbuf = '1';
}
else
{
pbuf = '0';
}
}
}