Question : Decimal conversion Hex!

java1985 2004-12-02 12:14:41
我想将 char c[9] = "123456789"; 变成:

char H[0] = 0x01;
char H[1] = 0x23;
char H[2] = 0x45;
char H[3] = 0x67;
char H[0] = 0x89;
然后在Read H[``]内容,比如将0x01在转换为Integer 1,0x23 变为 Integer 23.

还请大家多多指教````解决问题```马上结贴!




...全文
169 15 打赏 收藏 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
java1985 2004-12-06
  • 打赏
  • 举报
回复
呵呵````真的会这样吗?

248406869 2004-12-06
  • 打赏
  • 举报
回复
char c[9] = "123456789";
缓冲区溢出。当心!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
java1985 2004-12-06
  • 打赏
  • 举报
回复
char c[9] = "123456789";

变成:

char H[0] = 0x01; 就是将 已知的 1 变为 0x01,
char H[1] = 0x23; 就是将 已知的 23 变为 0x023,
char H[2] = 0x45;
char H[3] = 0x67;
char H[4] = 0x89;
然后在Read H[``]内容,比如将0x01在转换为Integer 1,0x23 变为 Integer 23.

非常感谢兄弟们的回帖```
bobedong 2004-12-03
  • 打赏
  • 举报
回复
不太行,你写的是12,34,56,78,9 不是01,23,45,67,89,就是那个1怎么办?
还有c[9]不行,必须得有一个字符串的结束\0,应该是c[10]
copygirl 2004-12-03
  • 打赏
  • 举报
回复
这题很容易让人产生误解嘛,楼主的意思是,将十进制的字符串,转为十六进制的字符串,数字还得与原来相同。在网吧里写的,大概是这个意思吧:
main()
{
int i;
int ibuffer;
int a,b;
char c[9] = "123456789";
char buffer[3];
for(i=0;i<strlen(c);i+=2)
{
buffer[0]=c[i];
buffer[1]=c[i+1];
buffer[2]='\0';
ibuffer=atoi(buffer);/*先转为十进制*/
a=ibuffer/10;/*取十位*/
ibuffer=ibuffer-a*10+a*16;/*将十位变为十六进制,原数减去十进制的十位,此时为十六进制的十进制表示*/
sprintf(buffer, "%02X", ibuffer);/*再以16进制显示出来,OK!*/

}
}
bobedong 2004-12-03
  • 打赏
  • 举报
回复
是不是一定要中间的16进制结果,那要好像很麻烦把,
用atoi可以“12”->12,十进制的
bobedong 2004-12-03
  • 打赏
  • 举报
回复
char c[11] = "0123456789";
char buffer[11];
char *p = NULL;
int H[9];
int i;

i = 0;
p = c;

for(i=0; i<5; i++)
{
strcpy(buffer,p);
buffer[2] = '\0';
H[i] = atoi(buffer);
p = p+2;
}

我不知道怎样处理1?
bobedong 2004-12-02
  • 打赏
  • 举报
回复
用sprintf()参数用%02x就行了,
java1985 2004-12-02
  • 打赏
  • 举报
回复
On-Line Waiting```
java1985 2004-12-02
  • 打赏
  • 举报
回复
On-Line Waiting```
java1985 2004-12-02
  • 打赏
  • 举报
回复
呵呵,好像还有点差异:

char c[9] = "123456789"; 变成:

char H[0] = 0x01; 就是将 已知的 1 变为 0x01,
char H[1] = 0x23; 就是将 已知的 23 变为 0x023,
char H[2] = 0x45;
char H[3] = 0x67;
char H[0] = 0x89;
然后在Read H[``]内容,比如将0x01在转换为Integer 1,0x23 变为 Integer 23.

多谢你的回复```已经很贴近了```麻烦老兄在帮帮忙```我就结贴
bobedong 2004-12-02
  • 打赏
  • 举报
回复
char buffer[3];
int iData;

iData = 10;
sprintf(buffer, "%02X", iData);

结果:
buffer中的值就应该是0A呀。

不知道,我写的,和你说的,是不是一个意思。
java1985 2004-12-02
  • 打赏
  • 举报
回复
能否写出个例子````我还是不大理解
David888david 2004-12-02
  • 打赏
  • 举报
回复
sprintf
java1985 2004-12-02
  • 打赏
  • 举报
回复
不是吧``````
f
源码直接下载地址: https://pan.quark.cn/s/854bd57df23a 在金融行业中,房产购置贷款是众多人在购置不动产时必须进行的一项财务规划。Matlab作为一种功能强大的数学及数据分析平台,经常被应用于各类复杂的运算,其中包括住房贷款的计算。本文将详细研究运用Matlab开发住房贷款计算程序的相关知识要点,以协助读者掌握如何借助编程技术处理实际的信贷问题。 1. **信贷种类** - **商业信贷**:此类贷款通常由金融机构提供,其利率会随市场行情变化,借款人可选用固定利率或浮动利率方案。 - **公积金信贷**:该类贷款获得政府机构的支持,利率一般低于商业信贷,但设有最高贷款金额的限制。 2. **偿付模式** - **等额本金偿付**:每月支付相同数量的本金,利息部分逐月减少,因此整体还款总额会逐步降低。 - **等额本息偿付**:每月支付固定金额的本金与利息组合,利息部分随本金的逐月减少而递减。 3. **住房贷款计算公式** - **等额本息偿付**:每月还款额=贷款本金×[月利率×(1+月利率)^(贷款期数)]÷[(1+月利率)^(贷款期数)-1]。 - **等额本金偿付**:每月应还本金=贷款总额/贷款期数,每月利息=(贷款余额-累计已还本金)×月利率。 4. **Matlab编程基础** - **变量设定**:在Matlab环境中,首要任务是设定贷款数额、年化利率、贷款时长等核心参数。 - **循环控制结构**:借助for循环来模拟每个还款周期的过程,进行本金与利息的计算。 - **函数构建**:将住房贷款的计算逻辑封装为函数,便于重复使用和测试不同条件下的结果。 5. **Matlab代码编写** - **等额本息函数实现**...

70,040

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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