C++Builder int如何以16进制输出

环境:C++Builder2009首先我用fread从一个GBAROM里读出了一串内容——因为是GBAROM,所以读的时候不是按文本模式,直接用2进制模式读出来的。但是读... 环境:C++Builder 2009

首先我用fread从一个GBA ROM里读出了一串内容——因为是GBA ROM,所以读的时候不是按文本模式,直接用2进制模式读出来的。
但是读出来的东西最后让控件显示的时候会默认输出10进制,而我希望它输出的是16进制,所以在这里问问如何做。

在网上看到一些人说printf()就可以,但是很可惜,那个函数是输出到屏幕上的,控制台编程还有用,这VCL编程就没法用了。

用BCB的人本来就少,用2009的就更少了,不知道有人回答没,悬赏最高只能100分,哎……
展开
 我来答
百度网友e9042513a
2009-08-08 · TA获得超过6984个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:3508万
展开全部
c++Builder 输出 16进制

函数 IntToHex(int Value, int Digits);
返回 AnsiString

int a = 256;
IntToHex(a, 4);
返回 0100

int a = 256;
IntToHex(a, 6);
返回 000100

使用 sprintf也可以

添加
#include <stdio.h>

int a = 256;
char s[100];
sprintf(s, "%0x", a);//把结果放到字符串s里
Edit1->Text = s;

使用 API wsprintf

int a = 256;
char s[100];
wsprintf(s, "%0x", a);//把结果放到字符串s里
Edit1->Text = s;
du瓶邪
2015-07-10 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2937万
展开全部

代码如下:

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 < strlen(ch)/2; i++)
{
    mid_char = ch[i];
    ch[i] = ch[temp - i - 1];
    ch[temp - i - 1] = mid_char;
}
 
printf("0x%s\n", ch);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
庾翔苍香露
2020-03-05 · TA获得超过3755个赞
知道大有可为答主
回答量:3030
采纳率:32%
帮助的人:194万
展开全部
代码如下:
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 < strlen(ch)/2; i++)
{
mid_char = ch[i];
ch[i] = ch[temp - i - 1];
ch[temp - i - 1] = mid_char;
}

printf("0x%s\n", ch);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Laplas
2009-08-08 · TA获得超过1万个赞
知道大有可为答主
回答量:2680
采纳率:50%
帮助的人:2438万
展开全部
我只用过 C++Builder 6
楼上的好像连 C++Builder 6 也没用过。

比如Edit 的对应方法:

String s;
s.printf("%x", n);
Edit1->Text = s;

s.printf 的语法和 printf()到屏幕是一样的。
很好用,我经常用。
可以去查 AnsiString 的Help。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2c32892
2009-08-08 · TA获得超过1554个赞
知道小有建树答主
回答量:704
采纳率:0%
帮助的人:336万
展开全部
printf和cout加参数应该都可以 用x%
标准库函数应该都有,跟用什么类库没关系吧
楼主试过么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式