【发布时间】:2013-10-08 02:19:16
【问题描述】:
我正在尝试将小数显示为十六进制。如果我有一个小数点如 3703484078,如何使用 fputc 将其显示为十六进制 DCBEAEAE?有什么公式可以用吗?
【问题讨论】:
-
尝试使用
fprintf(myfile, "%4X", 3703484078); -
看看这个link可能对你有用。
我正在尝试将小数显示为十六进制。如果我有一个小数点如 3703484078,如何使用 fputc 将其显示为十六进制 DCBEAEAE?有什么公式可以用吗?
【问题讨论】:
fprintf(myfile, "%4X", 3703484078);
调用输入的数字X。
调用最初为空的字符串 S。
Compute X mod 16.
使用以下映射将您从上一步得到的答案转换为字符:0->'0' 1->'1' 2->'2' 3->'3' 4-> '4' 5->'5' 6->'6' 7->'7' 8->'8', 9->'9' 10->'A' 11->'B' 12->' C' 13->'D' 14->'E' 15->'F'。
将字符串 S 替换为刚刚得到的字符,后跟字符串 S 的当前内容。
将X除以16(使用整数除法),将结果存储在X中
如果 X 不为零,请转到步骤 3。
使用fputc从左到右输出字符串S。
【讨论】:
您必须将数字转换为十六进制文本数字字符串。
在 StackOverflow 中搜索“十六进制转换”或“十六进制打印”以了解详细信息。
【讨论】: