[菜鸟发问]数字1怎么转化为字符“1”呢?

Gutta 2006-01-24 12:20:33
我有个函数,里面要涉及到:
0,1,2,。。。9,A,B,C,D,E,F

十六进制的16个数据,要把这个表示数值的数据转化为字符:
“0”,“1”,“2”。。。“9”,“A”,“B”。。。


这么搞也搞不好。。。

强行转化好象不行。。。
...全文
530 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gutta 2006-01-24
  • 打赏
  • 举报
回复
判断还不如直接列表来得快。

不过还得谢谢楼上的各位大哥。
菜牛 2006-01-24
  • 打赏
  • 举报
回复
'0'、'1'...9 = '0' + 0、1...9
'A'、'B'...'Z' = 'A' + (0xA-0xA)、(0xB-0xA)...(0xZ-0xA)
Gutta 2006-01-24
  • 打赏
  • 举报
回复
解决了。
分享一下:
const BYTE ascV[16] = {
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
0x41, 0x42, 0x43, 0x44, 0x45, 0x46
};

void __stdcall LRC(BYTE *DataBuffer , short DataLen , BYTE *LRCLo , BYTE *LRCHi)
{
BYTE Res = 0x00;

while(DataLen--)
{
Res = Res + *DataBuffer++;
}
Res = (~Res) + 1;

*LRCLo = ascV[Res%16];
*LRCHi = ascV[Res/16];
}

求LRC冗余码的DLL导出函数。
aa3000 2006-01-24
  • 打赏
  • 举报
回复
不明,请说明你的函数意义。大家瞎猜没有意义
Gutta 2006-01-24
  • 打赏
  • 举报
回复
标准的C,不要使用MFC,谢谢
Gutta 2006-01-24
  • 打赏
  • 举报
回复
我要的可能是计算而不是输出,请指教。

譬如:
char c1= “1” //转化后的字符1
依次类推
thisisll 2006-01-24
  • 打赏
  • 举报
回复
int a = 1;
sprintf(buf, "%d", a);
sprintf(buf, "%X", a);

%(flags)(width)(.prec)type
以中括号括起来的参数为选择性参数,而%与type则是必要的。底下先介绍type的几种形式
整数
%d 整数的参数会被转成一有符号的十进制数字
%u 整数的参数会被转成一无符号的十进制数字
%o 整数的参数会被转成一无符号的八进制数字
%x 整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示
%X 整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示浮点型数
%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入。
%e double型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示。
%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。
%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定。
%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。
字符及字符串
%c 整型数的参数会被转成unsigned char型打印出。
%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止
%p 如果是参数是“void *”型指针则使用十六进制格式显示。
prec 有几种情况
1. 正整数的最小位数。
2.在浮点型数中代表小数位数
3.在%g 格式代表有效位数的最大值。
4.在%s格式代表字符串的最大长度。
5.若为×符号则代表下个参数值为最大长度。
width为参数的最小长度,若此栏并非数值,而是*符号,则表示以下一个参数当做参数长度。
flags 有下列几种情况
#NAME?
+ 一般在打印负数时,printf()会加印一个负号,整数则不加任何负号。此旗标会使得在打印正数前多一个正号(+)。
# 此旗标会根据其后转换字符的不同而有不同含义。当在类型为o 之前(如%#o),则会在打印八进制数值前多印一个o。
而在类型为x 之前(%#x)则会在打印十六进制数前多印’0x’,在型态为e、E、f、g或G 之前则会强迫数值打印小数点。在类型为g 或G之前时则同时保留小数点及小数位数末尾的零。
0 当有指定参数时,无数字的参数将补上0。默认是关闭此旗标,所以一般会打印出空白字符。
handsomerun 2006-01-24
  • 打赏
  • 举报
回复
CString aa
int bb = 5;

aa.Format("%d",bb)
thisisll 2006-01-24
  • 打赏
  • 举报
回复
sprintf

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧