标签:style io sp for div on 2014 问题 bs
/*************************************************************************
> File Name: b.c
> Author: 傻李
> Mail: hellojukay@gmail.com
> Created Time: 2014年11月15日 星期六 20时01分35秒
************************************************************************/
#include<string.h>
#include<stdio.h>
#include<math.h>
int result[sizeof(int) * 8];
void translate(int a)
{
int c,i;
int tmp;//保存目标的绝对值
tmp = abs(a);
memset(result,0,sizeof(int) * 8);
if(a == 0)
{
for(i = 0; i < sizeof(int) * 8; ++i)
result[i] = 0;
return ;
}
for(i = 0; i < sizeof(int) * 8 - 1; ++i)
{
result[i] = tmp % 2;
tmp = tmp / 2;
}
//默认符号位0
result[i] = 0;
//负数求补码过程
if(a < 0)
{
result[sizeof(int) * 8 - 1] = 1;
for(i =0 ; i < sizeof(int) * 8 - 1;++i)
{
//除最高最位,按位取反
switch(result[i])
{
case 1:
result[i] = 0;
break;
case 0:
result[i] = 1;
break;
}
}
//尾数加1
c = 1;
for(i = 0; i < sizeof(int) && c != 0; ++i)
{
tmp = result[i];//此处tmp保存临时值
result[i] = result[i] ^ c;
c = tmp & c;
}
}
}
int main()
{
int a;
scanf("%d",&a);
translate(a);
int i;
for(i = sizeof(int)*8 -1; i >= 0; --i)
{
printf("%d",result[i]);
}
return 0;
}标签:style io sp for div on 2014 问题 bs
原文地址:http://blog.csdn.net/u013163178/article/details/41151569