数据类型。以下三个函数为什么能实现把十进制转换为二进制
/*显示unsigned型的逻辑与、逻辑或、逻辑异或和反码
*/
#include <stdio.h>
int count_bits(unsigned x)
{
int count = 0;
while(x) {
if (x & 1U) count++;
x >>= 1;
}
return (count);
}
int int_bits(void)
{
return count_bits(~0U);
}
int print_bits(unsigned x)
{
int i;
for(i = int_bits() - 1; i >= 0; i--)
putchar(((x >> i) & 1U) ? '1' : '0');
}
int main(void)
{
unsigned na, nb;
puts("请输入两个非负整数。");
printf("整数A:"); scanf("%u", &na);
printf("整数B:"); scanf("%u", &nb);
printf("\nA ="); print_bits(na);
printf("\nB ="); print_bits(nb);
printf("\nA & B ="); print_bits(na & nb);
printf("\nA | B ="); print_bits(na | nb);
printf("\nA ^ B ="); print_bits(na ^ nb);
printf("\n~A ="); print_bits(~na);
printf("\n~B ="); print_bits(~nb);
putchar('\n');
return (0);
}
ifuchuan 发表于 2021-6-15 12:27
第一个int count_bits()
#include <stdio.h>
int count_bits(unsigned x)
{
int count = 0;
while(x) {
if (x & 1U) count++;
x >>= 1;
}
return (count);
}
//下面这个函数就是取得111111111111你电脑是32位的 就是32个1 64位的 就是64个1
//都是二进制的1不是字符串
//而上面的第一个函数就是数一下这里究竟是多少个116? 32 ? 64?
//查出来多少个1有啥用 呢 供第三个函数使用
int int_bits(void)
{
return count_bits(~0U);
}
int print_bits(unsigned x)
{
int i;
for(i = int_bits() - 1; i >= 0; i--)
putchar(((x >> i) & 1U) ? '1' : '0');
} 哪个函数不理解呢 最近突然好多人拿一个鱼币发布悬赏贴子
sunrise085 发表于 2021-6-15 08:49
最近突然好多人拿一个鱼币发布悬赏贴子
啊这
本帖最后由 ifuchuan 于 2021-6-15 12:58 编辑
wp231957 发表于 2021-6-15 06:14
哪个函数不理解呢
这三个函数 sunrise085 发表于 2021-6-15 08:49
最近突然好多人拿一个鱼币发布悬赏贴子
我连鱼币都没有 太卑微了{:10_266:}
页:
[1]