6/2 return 可以得到与 6/a(其中 a=2)不同的结果吗? (以及这如何影响 .bmp 文件的输出)
Can 6/2 return a different result than 6/a (where a=2)? (and how that affects the output of a .bmp file)
我正在完成一项作业,其中必须编写一个调整 .bmp
图像大小的程序。
我知道标题听起来很奇怪,但我发现自己遇到了这种情况。
我有这段代码:
if (l < factor - 1)
{
fseek(inptr, -(bi.biWidth / factor), SEEK_CUR);
}
现在,我希望您关注 偏移量。 bi.biWidth == 6
和 factor == 2
,所以 -(bi.biWidth / factor)
应该等于 -3。
使用上面编写的代码,输出为 this.
并且,直接写-3,像这样:
if (l < factor - 1)
{
fseek(inptr, -3, SEEK_CUR);
}
输出为this。
所以,显然它应该 return 相同,但事实并非如此。我想知道为什么。
P.S.: 如果重要的话,factor
是一个命令行参数,已经通过 atoi
,并且 bi.biWidth
从另一个文件调用(并且有也乘以上面的 factor
变量,然后写入我附加的代码中 - 我仍然认为这不重要)。
EDIT1:LONG
是一个 int32_t
类型。 factor
是 int
类型。
EDIT2:完整代码:https://pastebin.com/TYjQkupw and headers definitions: https://pastebin.com/aAY3U2fG
上次编辑:我会尽快关闭这个问题。除其他外,主要问题是 IDE,出于某种原因,课程的工作人员仍在努力弄清楚,没有显示 .bmp 文件的实际像素。作为一个文件,输出是完美的,但在屏幕上它看起来不像那样。工作人员在他们的计算机上检查了我的输出,他们都看到了 perfect/normal .bmp 文件;他们无法理解我的问题,直到我向他们发送了一张显示我在屏幕上看到的图像 link 的图像——这与他们在屏幕上看到的完全不同,尽管 .bmp 文件是相同的。
感谢大家花时间回答我的问题!
首先感谢所有帮助和尝试解决这个问题的人。
这是答案(在问题文本中也添加为 "last edit"):显然,问题与代码无关。我的 IDE/screen/computer 中存在某种问题(仍然不清楚),导致输出看起来与实际不同。
为了让它更清晰,就像我的计算机执行了一个和 (1+2),并且在内部,处理器知道结果是 3,但仍然 - 对于一些未知的原因-屏幕显示 4.
事情就是这样。课程工作人员仍然不知道为什么,但代码是 "okay"。
再次感谢!!
我正在完成一项作业,其中必须编写一个调整 .bmp
图像大小的程序。
我知道标题听起来很奇怪,但我发现自己遇到了这种情况。
我有这段代码:
if (l < factor - 1)
{
fseek(inptr, -(bi.biWidth / factor), SEEK_CUR);
}
现在,我希望您关注 偏移量。 bi.biWidth == 6
和 factor == 2
,所以 -(bi.biWidth / factor)
应该等于 -3。
使用上面编写的代码,输出为 this.
并且,直接写-3,像这样:
if (l < factor - 1)
{
fseek(inptr, -3, SEEK_CUR);
}
输出为this。
所以,显然它应该 return 相同,但事实并非如此。我想知道为什么。
P.S.: 如果重要的话,factor
是一个命令行参数,已经通过 atoi
,并且 bi.biWidth
从另一个文件调用(并且有也乘以上面的 factor
变量,然后写入我附加的代码中 - 我仍然认为这不重要)。
EDIT1:LONG
是一个 int32_t
类型。 factor
是 int
类型。
EDIT2:完整代码:https://pastebin.com/TYjQkupw and headers definitions: https://pastebin.com/aAY3U2fG
上次编辑:我会尽快关闭这个问题。除其他外,主要问题是 IDE,出于某种原因,课程的工作人员仍在努力弄清楚,没有显示 .bmp 文件的实际像素。作为一个文件,输出是完美的,但在屏幕上它看起来不像那样。工作人员在他们的计算机上检查了我的输出,他们都看到了 perfect/normal .bmp 文件;他们无法理解我的问题,直到我向他们发送了一张显示我在屏幕上看到的图像 link 的图像——这与他们在屏幕上看到的完全不同,尽管 .bmp 文件是相同的。 感谢大家花时间回答我的问题!
首先感谢所有帮助和尝试解决这个问题的人。
这是答案(在问题文本中也添加为 "last edit"):显然,问题与代码无关。我的 IDE/screen/computer 中存在某种问题(仍然不清楚),导致输出看起来与实际不同。
为了让它更清晰,就像我的计算机执行了一个和 (1+2),并且在内部,处理器知道结果是 3,但仍然 - 对于一些未知的原因-屏幕显示 4.
事情就是这样。课程工作人员仍然不知道为什么,但代码是 "okay"。
再次感谢!!