byte num1 = 5;
byte num2 = 6;
byte res = num1 + num2;
//Adding bytes asks for a explicit cast to int - "Cannot Implicitly Convert 'int' to 'byte'
这可以通过假设算术运算导致溢出的情况来证明。因此,如果要成为事实,那么int呢?
int num1 = 2;
int num2 = 4;
int res = num1 + num2;
// This works, but when we take the previous assumption to consideration here
// here int may also lead to overflow right
因此,这还应该正确抛出强制转换错误,它应该请求很长时间,并且链条继续正确吗?
已经有另一个与此类似的stackoverflow问题,但它没有回答这个问题。字节+字节=整数...为什么?
仅仅因为它“可以被证明是这样”,并不意味着那是原因。
埃里克·利珀特(Eric Lippert)在您链接的问题的评论中对此很清楚:
下面的各种思路是设计考虑因素的合理近似值。更笼统地说:我不认为字节是“数字”。我认为它们是位的模式,可以解释为数字,字符,颜色或其他任何形式。如果要对它们进行数学运算并将其视为数字,则将结果移入更通常解释为数字的数据类型是有意义的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句