我是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。
答案 0 :(得分:1)
hex[index] = (char)(i + 48);
采用范围为0到9的索引i
并将其转换为字符'0'到'9'。字符代码“ 0”为48。
hex[index] = (char)((i-10) + 65);
做类似的事情,索引i
在10到15的范围内,并将其转换为字符'A'到'F'。字符代码“ A”为65。
此转换仅适用于您最有可能使用的ASCII和派生字符编码。
这两行都应该这样写,而不考虑链接程序的其他问题:
hex[index] = i + '0';
和
hex[index] = i - 10 + 'A';
或者,甚至更好:
char hex[] = "0123456789ABCDEF";