您的位置:首页 > 其它

使用位运算法将10进制转化为2进制

2011-01-22 19:50 316 查看
#include <stdio.h>
char * itobs (int, char *);
void show_bstr (const char *);

int main (void)
{
char bin_str[8 * sizeof (int) + 1];
int number;

puts ("Enter integers and see them in binary.");
puts ("Non-numeric input terminates program.");
while (scanf ("%d",&number) == 1)
{
itobs (number, bin_str);
printf ("%d is ",number);
show_bstr (bin_str);
putchar ('/n');
}
puts ("Bye!");

return 0;
}

char * itobs (int n, char *ps)
{
int i;
static int size = 8 * sizeof(int);

for (i = size - 1; i >= 0; i--, n >>= 1)
ps[i] = (01 & n) + '0';
ps[size] = '/0';

return ps;
}

void show_bstr (const char *str)
{
int i = 0;
while (str[i])
{
putchar (str[i]);
if (++i % 4 == 0 && str[i])
putchar (' ');
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: