读书人

为什么byte类型之间的值不能相加?该如

发布时间: 2012-01-23 21:57:28 作者: rapoo

为什么byte类型之间的值不能相加?
byte i=1;
byte j=2;
byte k=i+j;
运行这样的程序会失败,为什么?而int相加就可以

[解决办法]
以下赋值语句将产生一个编译错误,原因是赋值运算符右侧的算术表达式在默认情况下的计算结果为 int 类型。


// Error: conversion from int to byte:
byte z = x + y;

try..
若要解决此问题,请使用强制转换:

// OK: explicit conversion:
byte z = (byte)(x + y);


[解决办法]
那就要问C#了,long之间的+肯定是被运算符重载了,byte之间没有。
[解决办法]
TO:那如果是long+long呢,为什么表达式的计算结果默认不是int?

long +long 的计算结果默认为long..

至于为什么byte+byte=int,还真得去问微软了..

除byte之外,还有short+short表达式的计算结果默认也是int..

知道就行了,没有必要死抠..

个人意见,仅供参考..

读书人网 >C#

热点推荐