C语言 用代码将10进制转换为2进制表示
生活随笔
收集整理的这篇文章主要介绍了
C语言 用代码将10进制转换为2进制表示
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
按位运算符
| 按位与运算符 | a & b | 按位计算 a 和 b 的逻辑与 |
| 按位或运算符 | a | b | 按位计算a和b的逻辑或 |
| 按位异或运算符 | a ^b | 按位计算a和b的逻辑异或 |
| ~运算符 | ~a | 计算a的反码(将每一位取反之后的值) |
注:这些运算符的操作必须是整数类数据类型或者枚举型。如果应用于浮点型等数据类型操作数,编译时就会出错。
#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); }void print_bits(unsigned x){int i ;for (i = int_bits() - 1; i >= 0; i--){putchar(((x >> i) & 1U) ? '1' : '0');} }int main(void){unsigned num1, num2;printf("请输入两个非负整数。\n");printf("num1 : ");scanf("%u", &num1);printf("num2 : ");scanf("%u", &num2);printf("\nnum1 = ");print_bits(num1);printf("\nnum2 = ");print_bits(num2);printf("\nnum1 & num2 = ");print_bits(num1 & num2);printf("\nnum1 ! num2 = ");print_bits(num1 | num2);printf("\nnum1 ^ num2 = ");print_bits(num1 ^ num2);printf("\n~num1 = ");print_bits(~num1); //反码 printf("\n~num2 = "); // 反码 print_bits(~num2);putchar('\n');return 0; }运行结果:
- count_bits函数:返回整数x中设置的位数
- int_bits函数:返回 unsigned 型位数
- print_bits函数: 显示 unsigned 型的位的内容
函数 print_bits 是将无符号整数 x 的所有位有用 0 和 1 来表示的函数。函数 int_bits 和 count_bits 被用于执行这一工作。
注:程序会在判断 unsigned 型的位数之后进行显示。这里展示的是 unsigned 型为16位的例子(如果unsigned型为32位,就会显示32位)。
总结
以上是生活随笔为你收集整理的C语言 用代码将10进制转换为2进制表示的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: C语言 获取数组的元素个数
- 下一篇: C语言 位移运算符的使用