C++Builder int如何以16进制输出
来源:百度知道 编辑:UC知道 时间:2024/06/04 12:20:18
环境:C++Builder 2009
首先我用fread从一个GBA ROM里读出了一串内容——因为是GBA ROM,所以读的时候不是按文本模式,直接用2进制模式读出来的。
但是读出来的东西最后让控件显示的时候会默认输出10进制,而我希望它输出的是16进制,所以在这里问问如何做。
在网上看到一些人说printf()就可以,但是很可惜,那个函数是输出到屏幕上的,控制台编程还有用,这VCL编程就没法用了。
用BCB的人本来就少,用2009的就更少了,不知道有人回答没,悬赏最高只能100分,哎……
首先我用fread从一个GBA ROM里读出了一串内容——因为是GBA ROM,所以读的时候不是按文本模式,直接用2进制模式读出来的。
但是读出来的东西最后让控件显示的时候会默认输出10进制,而我希望它输出的是16进制,所以在这里问问如何做。
在网上看到一些人说printf()就可以,但是很可惜,那个函数是输出到屏幕上的,控制台编程还有用,这VCL编程就没法用了。
用BCB的人本来就少,用2009的就更少了,不知道有人回答没,悬赏最高只能100分,哎……
代码如下:
int a;
char ch[10];
char mid_char;
int temp = 0, i = 0;
printf("Please input the num:\n");
scanf("%d", &a);
while(a / 16 > 0)
{
temp = a % 16;
ch[i] = temp + 48;//字符比数字ASCII码大48
i++;
a = a / 16;
if( a < 16 )
{
ch[i] = a + 48;//这样得到的结果是逆序的
break;
}
}
//调整一下顺序
temp = strlen(ch);
for(i = 0; i&nb