- #include<stdio.h>
- void lvGuoDong(int a);
- int main()
- {
- int a;
- printf("请输入一个正整数后会输出它的二进制形式!\n");
- scanf("%d",&a);
- lvGuoDong(a);
- return 0;
- }
- void lvGuoDong(int a)
- {
- //第一种
- if (a>0) {
- printf("0");
- } else {
- printf("1");
- }
- for (int i=sizeof(int)*8-2,b; i>=0; i--) {
- b=a>>i&1;
- printf("%d",b);
- if (i%8==0) {
- printf("\t");
- }
-
- }
- printf("\n");
- //第二种(实现了但不好看)
- if (a>0) {
- printf("0");
- } else {
- printf("1");
- }
- for (int i=1,b; i<32; i++) {
- b=a>>(31-i)&1;
- printf("%d",b);
- if (i%8==0) {
- printf("\t");
- }
-
- }
- printf("\n");
-
-
-
- }
复制代码 这个也可以用三目运算做出来,想一想怎么做?
|
|