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