繁体   English   中英

将二进制转换为十六进制数的C程序

[英]C program to convert Binary to Hexadecimal number system

我是c语言的初学者,当我被训练做一些练习时,我看到了

hex[index] = (char)(i + 48);

hex[index] = (char)((i-10) + 65);

而且我还不知道。

完整代码在这里: https : //codeforwin.org/2015/08/c-program-to-convert-binary-to-hexadecimal-number-system.html

 hex[index] = (char)(i + 48); 

取索引i的范围为0到9,并将其转换为字符“ 0”到“ 9”。 字符代码“ 0”为48。

 hex[index] = (char)((i-10) + 65); 

使用索引i在10到15的范围内执行类似的操作,并将其转换为字符'A'到'F',分别。 字符代码“ A”为65。

此转换仅适用于您最有可能使用的ASCII和派生字符编码。

<rant>有些人刚刚学会了一种语言,他们要做的第一件事就是建立一个网页,将其命名为“面向初学者的C编程”。 但是由于他们对语言的了解非常有限,所以他们散布了错误且半熟的陈述……不幸的是,您陷入了其中一个陷阱。 好吧,它可以带您学习更多和更好的知识,因为您发现该网站上的空白和错误。 祝好运! </咆哮>

这两行应该这样写,而不考虑链接程序的其他问题:

hex[index] = i + '0';

hex[index] = i - 10 + 'A';

或者,甚至更好:

char hex[] = "0123456789ABCDEF";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM