c - 如何将带小数点的有符号数解释为 C 代码中的实际值(256 -> 4)

标签 c floating-point vhdl

我有一个从 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/

相关文章:

c - 静态库与静态库的链接

c - 将包含矩阵的 ASCII 文本文件读入二维数组(C 语言)

python - 分数除法的余数在 Python 中不起作用

VHDL:如何处理函数返回的无约束数组作为实体端口的输入?

将 C 字符串转换为二进制值数组,然后逐位传输数组

c - 使用 Turbo C 3.0 在 C 中进行内联汇编 - 如何获取标签的地址

c - 结构有问题,程序不保存输入。我没有经验

C++ 在 boost 属性树中存储浮点值

Python小数

if-statement - 没有 elsif 和 else 条件的 if 语句的 VHDL 综合