我得到了一个从 0 到 255 的 int 值,我想将该值转换为十六进制或二进制,以便我可以将它用于 8 位寄存器(PIC18F uC)。我该如何进行这种转换?我尝试使用转换库中的 IntToHex 函数,但该函数的输出是一个 char 值,从这里我被卡住了。我正在使用 mikroc 图片。我应该从哪里开始?谢谢!
问问题
1561 次
1 回答
0
这是一个常见的问题。许多人不明白,十进制 15 与十六进制 F 相同,八进制 17 与二进制 1111 相同。
不同的数字系统适用于人类,对于 CPU,它都是二进制的!
当OP说,
我得到了一个从 0 到 255 的 int 值,我想将该值转换为十六进制或二进制,以便我可以将它用于 8 位寄存器(PIC18F uC)。
它反映了这种误解。可能是因为调试器配置为显示“十进制”值,并且示例代码/数据表显示寄存器操作的十六进制值。
因此,当您获得从 0 到 255 的“int”值时,您可以直接将该数字写入 8 位寄存器。您不必将其转换为十六进制。Hex只是让人类生活变得轻松的表示。
你能做的是——这是一个很好的做法——
REG_VALUE = (unsigned char) int_value;
于 2017-03-14T04:05:40.560 回答