我有一个从 vhdl 代码输入到用 C 语言编程的 Nios 系统的输入。
在vhdl中,
signal input : ufixed(9 downto -6);
当我将此输入提供给 C 编译器时,在终端窗口中显示,
input = 256
在 vhdl 中,输入被声明为有 10 个小数点和 6 个小数点。所以,
二进制输入应如下所示:0000000100 000000
(相当于十进制的 256
)
我应该怎么做才能将“输入”解释为 C 代码中的值 4
?
我想要整数和小数部分,例如,如果输入是 0000000100 100000
,我想在 C 代码中获取 4.5
的值
最佳答案
在 C 代码中,您可以除以比例因子以获得等效值:
float f = (float)input / (1 << 6); // divide by 2^6 = 64
如果你只想要整数部分,那么你可以移出小数部分:
int n = input >> 6;
关于c - 如何将带小数点的有符号数解释为 C 代码中的实际值(256 -> 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31139596/