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分,哎…… 展开
首先我用fread从一个GBA ROM里读出了一串内容——因为是GBA ROM,所以读的时候不是按文本模式,直接用2进制模式读出来的。
但是读出来的东西最后让控件显示的时候会默认输出10进制,而我希望它输出的是16进制,所以在这里问问如何做。
在网上看到一些人说printf()就可以,但是很可惜,那个函数是输出到屏幕上的,控制台编程还有用,这VCL编程就没法用了。
用BCB的人本来就少,用2009的就更少了,不知道有人回答没,悬赏最高只能100分,哎…… 展开
6个回答
展开全部
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;
函数 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;
展开全部
代码如下:
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码如下:
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);
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我只用过 C++Builder 6
楼上的好像连 C++Builder 6 也没用过。
比如Edit 的对应方法:
String s;
s.printf("%x", n);
Edit1->Text = s;
s.printf 的语法和 printf()到屏幕是一样的。
很好用,我经常用。
可以去查 AnsiString 的Help。
楼上的好像连 C++Builder 6 也没用过。
比如Edit 的对应方法:
String s;
s.printf("%x", n);
Edit1->Text = s;
s.printf 的语法和 printf()到屏幕是一样的。
很好用,我经常用。
可以去查 AnsiString 的Help。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf和cout加参数应该都可以 用x%
标准库函数应该都有,跟用什么类库没关系吧
楼主试过么
标准库函数应该都有,跟用什么类库没关系吧
楼主试过么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询