如何在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
值存储在某个未定义的内存位置。至于划分,你希望结果是什么类型,你想用它做什么? “整数”是指int
? int
和 short
都是整数类型。 @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的主要内容,如果未能解决你的问题,请参考以下文章