- 论坛徽章:
- 1
|
- #include <stdio.h>
- int main()
- {
- int x,i,j,temp,count;
- char hex[sizeof(int)*2+3]={0},bin[sizeof(int)*8+1]={0};
- printf("input number:");
- scanf("%d",&x);
- /*digit to binary*/
- for(i=sizeof(int)*8-1;i>=0;i--)
- bin[sizeof(int)*8-1-i]=((x>>i)&1)+'0';
- /*digit to hex*/
- hex[0]='0',hex[1]='x';
- for(i=0,temp=count=0;i<sizeof(int)*2;i++,temp=count=0)
- {
- for(j=8;j>0;j/=2)
- temp+=(bin[i*4+count++]-'0')*j;
- if(temp>=10)
- hex[i+2]='A'+temp-10;
- else
- hex[i+2]=temp+'0';
- }
- printf("10->%d\n2->%s\n16->%s\n",x,bin,hex);
- return 0;
- }
复制代码
负数直接给的补码. |
|