我有这段代码,但它似乎只打印十六进制转换的最后4个字符。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main ()
{
int i;
char test [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,test,16);
printf ("hexadecimal: %s\n",test);
getch();
}
HELP?
答案 0 :(得分:1)
您可以使用hex
。
std::stringstream ss;
ss<< std::hex << your_input;
std::string res ( ss.str() );
std::cout << res;
答案 1 :(得分:0)
答案 2 :(得分:0)
我找到了上面代码的替代品,它有点长但工作正常。
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
unsigned long int decnum, rem, quot;
char hexdecnum[100];
int i=1, j, temp;
cout<<"Enter any decimal number : ";
cin>>decnum;
quot=decnum;
while(quot!=0)
{
temp=quot%16;
// to convert integer into character
if(temp<10)
{
temp=temp+48;
}
else
{
temp=temp+55;
}
hexdecnum[i++]=temp;
quot=quot/16;
}
cout<<"Equivalent hexadecimal value of "<<decnum<<" is : \n";
for(j=i-1; j>0; j--)
{
cout<<hexdecnum[j];
}
getch();
}
虽然需要在最后一部分组合数组的元素。