【发布时间】:2013-07-10 03:07:48
【问题描述】:
我在 c# 中有这样的东西
byte a;
byte b;
byte c;
c = a + b;
它给 c = a + b 一个错误并说“不能隐式地将类型'int'转换为'byte'。存在显式转换(你是否缺少演员表?)。我不明白为什么,因为一切以字节为单位
涉及 Matlab 是因为我正在将一个图像处理程序从 matlab 翻译成 c#,在 c# 中我从 uint8 的图片中获取值并使用该值进行计算,当它这样做时,unit8 接管并且在任何计算期间高于任何数字255 设置为 255。所以在 c# 中,我只是将所有变量都设为字节,因为无论如何它们都低于 255,但就像在示例代码中运行计算时会弹出错误一样。
【问题讨论】:
-
没有带字节的 + 运算符 - 请参阅 stackoverflow.com/questions/941584/byte-byte-int-why
-
正如提供的链接所说,我之前确实尝试过投射它们,但是我在 c# 中得到的计算与我在 matlab 中得到的不同
-
但是我在 c# 中得到的计算与我在 matlab 中得到的不一样——如果我们有一些值可以使用的话......