整数相乘的结果不正确

Incorrect result from a multiplication of Integer

我读取了 DICOM 图像并提取了它的一些特征,例如宽度和高度。 现在我想将图像的总像素数保存在一个变量中。 这是代码:

info = dicominfo(filename);

width = info.Width;
height = info.Height;
colorType = info.ColorType;
format = info.Format;
size = info.FileSize;
numberOfPixels = width*height;
k = info.BitDepth;

这些是印刷品:

  Size: 256 x 256
  Color type: grayscale
  Format: DICOM
  Size: 137024 bytes
  NumberOfPixels: 65535

numberOfPixels 值错误。为什么?

我认为这是一个转换问题,所以我也尝试添加 uint32(width*height) 但没有,我得到 65535 而不是 65536。 为什么?

谢谢

你应该在之前施放乘法,例如uint32(width)*uint32(height).