1.输入一个正整数以2的幂形式输出
#include <stdio.h>
main (void)
{
int x, k = 0;
printf("请输入一个正整数:\n") ;
scanf("%d", &x) ;
for (int i = 31 ; i >= 0 ; i--)
{
if ((x & 0x80000000) == 0x80000000)
{
if (0 == k)
k = 1 ;
else
printf("+") ;
printf("2(%d)", i) ;
}
x = x<<1 ;
}
}
2.输入一个正整数以2的幂形式输出,如果幂大于1,幂也用2的幂形式输出
#include <stdio.h>
void p2(int x)
{
int k = 0 ;
for (int i = 31 ; i >= 0 ; i--)
{
if ((x & 0x80000000) == 0x80000000)
{
if (0 == k)
k = 1 ;
else
printf("+") ;
printf("2(") ;
if (i < 2)
printf("%d)", i) ;
else
{
p2(i) ;
printf(")") ;
}
}
x = x<<1 ;
}
}
main (void)
{
int x ;
printf("请输入一个正整数:\n") ;
scanf("%d", &x) ;
p2(x) ;
}