用移位运算实现一个整数二进制形式的输出--简短程序分析
2013-05-19 23:20
531 查看
#include <stdio.h>
int
main ()
{
const int bits = sizeof(int)*8; //一个字节8位,算出是多少位的运算,如32,64
unsigned int mask = 1<<bits-1; //如果是32位运算,则是0x80000000;注意是bits-1
int n;
printf ("Please input an integer: ");
scanf ("%d", &n);
int i;
for ( i=0; i<bits; i++ )
{
//实现每次进行一次移位,这样输出n的每一位
printf ("%c", n&mask?'1':'0'); //运算后,如果不是0,就是1;注意是%c
mask = mask>>1;
}
printf ("\n");
return 0;
}
一下是实现上述功能的另外的微小改动的实现方式:
1.
#include<stdio.h>
int
main ()
{
const int bits = sizeof(int)*8;
unsigned int mask = 1<<bits-1;
int n;
printf ("Please input an integer: ");
scanf ("%d", &n);
int i;
for ( i=0; i<bits; i++ )
{
printf ("%c", n&mask?'1':'0');
n << 1;
}
printf ("\n");
return 0;
}
2.
#include<stdio.h>
int
main ()
{
const int bits = sizeof(int)*8;
unsigned int mask = 1<<bits-1;
int n;
printf ("Please input an integer: ");
scanf ("%d", &n);
int i;
for ( i=0; i<bits; i++ )
{
printf ("%c", n<0?'1':'0');
n << 1;
}
printf ("\n");
return 0;
}
3.
#include<stdio.h>
int
main ()
{
const int bits = sizeof(int)*8;
unsigned int mask = 1<<bits-1;
int n;
printf ("Please input an integer: ");
scanf ("%d", &n);
int i;
for ( i=0; i<bits; i++ )
{
printf ("%d", n<0);
n << 1;
}
printf ("\n");
return 0;
}
int
main ()
{
const int bits = sizeof(int)*8; //一个字节8位,算出是多少位的运算,如32,64
unsigned int mask = 1<<bits-1; //如果是32位运算,则是0x80000000;注意是bits-1
int n;
printf ("Please input an integer: ");
scanf ("%d", &n);
int i;
for ( i=0; i<bits; i++ )
{
//实现每次进行一次移位,这样输出n的每一位
printf ("%c", n&mask?'1':'0'); //运算后,如果不是0,就是1;注意是%c
mask = mask>>1;
}
printf ("\n");
return 0;
}
一下是实现上述功能的另外的微小改动的实现方式:
1.
#include<stdio.h>
int
main ()
{
const int bits = sizeof(int)*8;
unsigned int mask = 1<<bits-1;
int n;
printf ("Please input an integer: ");
scanf ("%d", &n);
int i;
for ( i=0; i<bits; i++ )
{
printf ("%c", n&mask?'1':'0');
n << 1;
}
printf ("\n");
return 0;
}
2.
#include<stdio.h>
int
main ()
{
const int bits = sizeof(int)*8;
unsigned int mask = 1<<bits-1;
int n;
printf ("Please input an integer: ");
scanf ("%d", &n);
int i;
for ( i=0; i<bits; i++ )
{
printf ("%c", n<0?'1':'0');
n << 1;
}
printf ("\n");
return 0;
}
3.
#include<stdio.h>
int
main ()
{
const int bits = sizeof(int)*8;
unsigned int mask = 1<<bits-1;
int n;
printf ("Please input an integer: ");
scanf ("%d", &n);
int i;
for ( i=0; i<bits; i++ )
{
printf ("%d", n<0);
n << 1;
}
printf ("\n");
return 0;
}
相关文章推荐
- C语言位段操作,写一个程序,从键盘上接收一个整数,用二进制形式输出这个整数
- 整除运算, 写一个程序,接收两个整数a和b,关判断a是否能被b整除,输出判断结果
- 通过键盘输入100 以内正整数的加、减运算式,请编写一个程序输出运算结果字符串
- 机试题:过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
- 【输出一个整数的二进制存储形式】
- C语言整数十进制按照二进制形式输出程序
- 通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
- 第十二周项目三(五):输出一个整数的二进制形式
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 判断是否为2的幂||输出一个整数二进制格式中1的个数 非循环非递归实现
- 1.输出一个整数的每一位。2. 编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 华为:通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串
- 用递归实现求一个整数的二进制形式
- 位运算训练03—输入一个整数a,再输入两个整数p1,p2(p1,p2<32);将该整数的二进制表示方法中从右端开始的p1到p2位取反后输出
- 把一个十进制整数以二进制数形式输出,for循环实现
- 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
- 编写一个程序,实现两个256位的十进制整数的乘法运算.
- 3. 编写一个C程序,实现对10个整数进行升序排序输出。
- Java程序输出一个整数的二进制,八进制,十六进制数
- 华为机试——通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串