”16位十六进制在C十进制孔韦尔森

G

Guest

Guest
嗨,
为了大家,
余woul想转换成十进制值的16位数据用C代码(我没有使用我的工程大会),所以谁能告诉我怎样可以做到这一点,等待答复,

谢谢
达亚尔

 
最快的方法是使用减法。16位的人数不超过65000(符号)或32K(签字)。他们是不超过10万tkan [;

所有你需要做的是一个循环中
, 您执行下列操作:

1。您sutract的VAR1(在一开始就应该是10000)从十六进制
2。VAR1添加到您的DEC_1(在它是用来显示开始10000对,比1000年的依此类推
, 直至1的)。
3。如果六角“VAR1 =”VAR1 = VAR1/10(更好地利用一个查找表,因为它不需要科)(所以在第二个步骤将是1000比100,比10,最后1 [“=你需要另一个是条件测试,来结束循环或其他一些编程技巧])_and_十进制值更改为下一个(DEC_2,比DEC_3 ...)_else_从一开始就继续循环

)

你可以在下面的方式(即 不是一个完整的代码可能!)代码:字符十二月[5] =(0,0,0,0,0);

廉政divisior [] =(10000,1000,100,10,1);

廉政十六进制= 54321;对于(整合酶= 0;“5;一 )



而(十六进制“=除数[一])



十六进制=十六进制除数[一];

12月[一] ;





 
喂,
in this regard?

你怎么在这方面 十进制
意味着什么呢?十进制ASCII字符串表示或BCD(二进制编码的十进制)数据。首先是acchieved用sprintf()库函数后者许多编译器,有额外的C函数。
如果没有,你可以做的建议,或有些压实代码,利用ç模“%”操作。

关心,
弗兰克

 
但请注意:

1。sprintf将使用类似的代码2K的和循环我张贴以上〜100个字节可能
2。模看起来不错,但如果你的芯片不支持硬件部门将需要更长的时间这样做,可能采取的结果更多的代码

0x41 0x56 0x45!

 
这都是事实。不过
, 我想sprintf()和算术用于在平凡的设计无论如何。其实,这取决于设计。当使用C,我们应该知道它提供了比其他四个基本操作更多。

 
无符号字符的结果[6];

无效bin2ascii(无符号int数据)

无符号字符加州大学;
对(市= 0;加州大学“4;结肠炎 )

结果[加州] =''; / /设置前四个字符空间

结果[加州] = '0'; / /设置第五字符为ASCII 0
结果[5] = 0; / /结束字符串
而(数据“10)

结果[加州] =(无符号字符)(数据%10) '0';
加州大学- ;
数据=数据/ 10;

如果(资料!= 0)

结果[加州] =数据 '0';

返回;


 
您好达亚尔,请说明是什么类型的变量包含您的输入和输出值。一个例子转换也将有助于澄清你的问题。

您的主题行提到十六进制。如果你想转换一个NULL结尾的
, 如“C31B”变成一个无符号包含49947廉政,然后sscanf()可以这样做,但它是一个大的库函数ASCII字符串。手写十六进制字符串到符号- INT函数将是小而简单的,如果是你需要转换。

 

Welcome to EDABoard.com

Sponsor

Back
Top