如何在C中将短值除以int

Posted

技术标签:

【中文标题】如何在C中将短值除以int【英文标题】:how to divide a short value by int in C 【发布时间】:2015-02-02 00:58:03 【问题描述】:

我有一个很短的值,我想将它除以一个整数值。如何在 C 中实现这一点?

short *i;
int divider = 3;
fread(i, sizeof(short), inputfile);
/*write to buffer with i / divider. */

【问题讨论】:

只需输入结果 您的代码有未定义的行为。 i 是一个指针,你不初始化它,所以它不指向任何定义的位置。 fread 将尝试将 short 值存储在某个未定义的内存位置。至于划分,你希望结果是什么类型,你想用它做什么? “整数”是指intintshort 都是整数类型。 @Isaiah:可能不需要强制转换(不是“类型转换”)。 @KeithThompson 那只是我写的测试代码。我想从文件中读取 2 个字节到一个 short 中,将 short 值除以一个 int,然后将结果打印为一个 short。抱歉,我是 C 新手。 该澄清属于问题。 short 对象是如何分配的?你有什么特别的原因要这样做吗? 【参考方案1】:

也许这会有所帮助。

short i;
int divider = 3;
fread(&i, sizeof(short), 1, inputfile);

short r = i / divider;

请注意,不是将i 声明为指针,而是将其声明为short 类型并将其地址传递给fread。然后只做除法。

您可能还想检查fread 的返回值,它表示实际读取了多少值。

【讨论】:

以上是关于如何在C中将短值除以int的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Oracle SQL 中将整数除以产生浮点数?

如何在目标 C 中将 NSInteger 值转换为 int 值? [复制]

如何在c ++中将int数组转换为字节数组[重复]

如何在C中将函数指针数组的函数指针作为函数参数传递?

如何在C中将char转换为整数? [复制]

如何在 Go 中将 int 值转换为字符串?