70,020
社区成员




#include<stdio.h>
#include<stdlib.h>
int main()
{
char str[32];
int num,i=0,abs_num,j,k,tmp;
printf("Please input a num:");
scanf("%d",&num);
abs_num=abs(num);
do
{
str[i]=abs_num%2; //只是为了临时存放一个数值,不需要+'0'转换成相应字符
abs_num/=2;
i++;
}
while(abs_num>1);
str[i++]=abs_num;
if(num<0)str[i]=1;
else
str[i]=0;
num=0;
for(j=1;j<=i;j++)
{
k=i-j;
tmp=1;
while(k--)tmp*=2;
num+=(str[j])*tmp;
}
num*=(str[0]>0?(-1):1);
printf("%d\n",num);
return 0;
}
//计算机中数据是以二进制来保存的,如何先将一个数的二进制形式逆序,然后再把新得到的数用整数形式输出?
//比如13表示为 1101, 逆序后位 1011,用整数形式输出结果为11。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main() {
int v;
char b[33],*ep;
scanf("%d",&v);//输入13回车
itoa(v,b,2);
strrev(b);
v=strtol(b,&ep,2);
printf("%d\n",v);//输出11
}
//计算机中数据是以二进制来保存的,如何先将一个数的二进制形式逆序,然后再把新得到的数用整数形式输出?
//比如13表示为 1101, 逆序后位 1011,用整数形式输出结果为11。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main() {
int v;
char b[33],*ep;
scanf("%d",&v);//输入13回车
itoa(v,b,2);
strrev(b);
v=strtol(b,&ep,2);
printf("%d\n",v);//输出11
}
//计算机中数据是以二进制来保存的,如何先将一个数的二进制形式逆序,然后再把新得到的数用整数形式输出?
//比如13表示为 1101, 逆序后位 1011,用整数形式输出结果为11。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main() {
int v;
char b[33],*ep;
scanf("%d",&v);//输入13回车
itoa(v,b,2);
strrev(b);
v=strtol(b,&ep,2);
printf("%d\n",v);//输出11
}
//计算机中数据是以二进制来保存的,如何先将一个数的二进制形式逆序,然后再把新得到的数用整数形式输出?
//比如13表示为 1101, 逆序后位 1011,用整数形式输出结果为11。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main() {
int v,L,i;
char b[33],c,*ep;
scanf("%d",&v);//输入13回车
itoa(v,b,2);
L=strlen(b);
for (i=0;i<L/2;i++) {c=b[i];b[i]=b[L-i-1];b[L-i-1]=c;}
v=strtol(b,&ep,2);
printf("%d\n",v);//输出11
}
//计算机中数据是以二进制来保存的,如何先将一个数的二进制形式逆序,然后再把新得到的数用整数形式输出?
//比如13表示为 1101, 逆序后位 1011,用整数形式输出结果为11。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main() {
int v,L,i;
char b[33],c,*ep;
scanf("%d",&v);//输入13回车
itoa(v,b,2);
L=strlen(b);
for (i=0;i<L/2;i++) {c=b[i];b[i]=b[L-i-1];b[L-i-1]=c;}
v=strtol(b,&ep,2);
printf("%d\n",v);//输出11
}
//计算机中数据是以二进制来保存的,如何先将一个数的二进制形式逆序,然后再把新得到的数用整数形式输出?
//比如13表示为 1101, 逆序后位 1011,用整数形式输出结果为11。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main() {
int v,L,i;
char b[33],c,*ep;
scanf("%d",&v);//输入13回车
itoa(v,b,2);
L=strlen(b);
for (i=0;i<L/2;i++) {c=b[i];b[i]=b[L-i-1];b[L-i-1]=c;}
v=strtol(b,&ep,2);
printf("%d\n",v);//输出11
}
INT32 i = 32, i32OutPut = 0;
INT32 i32Value;
scanf("%d", & i32Value);
while (i--) {
i32OutPut |= (((i32Value >> i) & 1) ? (1 << (32 - i)) : 0;
}
printf("%d\n", i32OutPut);
INT32 i = 32, i32OutPut = 0;
INT32 i32Value;
scanf("%d", & i32Value);
while (i--) {
i32OutPut |= (((i32Value >> i) & 1) ? (1 << (32 - i)) : 0;
}
printf("%d\n", i32OutPut);
#include<stdio.h>
int main()
{
char str[31];//偷个懒,不考虑符号位了...
int num,i=0,j,k,tmp;
printf("Please input a num:");
scanf("%d",&num);
do
{
str[i]=num%2+'0';
num/=2;
i++;
}
while(num>1);
str[i]=num+'0';
num=0;
for(j=0;j<=i;j++)
{
k=i-j;
tmp=1;
while(k--)tmp*=2;
num+=(str[j]-'0')*tmp;
}
printf("%d\n",num);
return 0;
}
#include <string.h>
#include <stdio.h>
void reverse(char *s);
int main()
{
int i,j,k;
char buffer[256];
printf("Input:");
scanf("%d",&i);
itoa(i,buffer,2);
printf("%s\n",buffer);
reverse(buffer);
printf("\n%s",buffer);
j=0;
k=0;
while(buffer[k++]!='1'){ ;}
k--;
while(buffer[k])
{
j=j*2+(buffer[k]-'0');
k++;
}
printf("\n**%d**",j);
}
void reverse(char *s)
{
char ch,*p1=s;
int size = strlen(s);
char *p=s+size-1;
while(p>=p1)
{ ch=*p;
*p--=*p1;
*p1++=ch;
};
}