#include
int main()
{
int a,*p;
p=&a;
scanf("%d",p);
printf("%x\n",*p);
return 0;
}
扩展资料:
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
不用系统的函数,用栈实现
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
#include
struct stack
{
char* base;
char* top;
int length;
};
void InitStack(struct stack *p)
{
p->base=(char*)malloc(100);
p->top=p->base;
*(p->top)=0;
p->length=0;
}
bool push(struct stack *p,char a)
{
if(p->length >=100) return false;
*(p->top) = a;
p->top++;
*(p->top)=0;
p->length++;
return true;
}
bool pop(struct stack *p)
{
if(p->length <= 0) return false;
p->top--;
*(p->top)=0;
p->length--;
return true;
}
char Get_Top(struct stack *p)
{
if(p->length <= 0) return false;
return *(p->top-1);
}
int main(int argc, char* argv[])
{
struct stack MyStrack;
InitStack(&MyStrack);
int a;
printf("请输入一个整数:");
scanf("%d",&a);
while(a)
{
int tempint=a%16;
char temp = tempint>9 ? 'A'+tempint-10:'0'+tempint;
push(&MyStrack,temp);
a=a/16;
}
int len=MyStrack.length;
printf("转化为十六进制为:");
for(int i=0;i
char temp=Get_Top(&MyStrack);
if(!temp) return 0;
pop(&MyStrack);
printf("%c",temp);
}
return 0;
}
#include
#include
void main(){
int a;
char b[10];
scanf("%d",&a);
itoa(a,b,16);
printf("%s",b);
}
运行结果
a=1000
a=3e8h
Press any key to continue
程序
//VC6.0
#include "stdio.h"
void main()
{
int a;
printf("a=");
scanf("%d",&a);
printf("\na=%xh\n",a);
}