C#中byte 万分感谢

C#中的byte类型好像不能直接可以常量加减运算啊比如bytea=1+1;需要强制转换,如果多了的话影响执行效率吧但它占得内存少啊没有别的办法补救吗... C#中的byte类型 好像不能直接可以常量加减 运算啊 比如 byte a=1+1;
需要强制转换,如果多了的话 影响执行效率吧 但它占得内存少啊 没有别的办法补救吗
展开
 我来答
Wilson
2010-05-05 · TA获得超过189个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:118万
展开全部
这个,建议你还是用常用的八大数据类型定义吧。
如:int ,string,double ,char 等
yfeiaa
2010-05-06
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
可以常量加减 运算
byte a=1+1;
因1是int类型,所以1+1的结果也是int类型。
int 类型大于byte类型,隐式转换有丢失数据的可能。所以会提示错误。

值类型中 值域小的类型可以隐工转换为大的类型(比如byte可以隐式转换为int类型。注意有符号不可隐式转为无符号。因为有可能会有数据丢失)

可以写为:
byte a=(byte)(1+1);
如结果大于255 a的值为1 我试的是这样的。
你也可以试一下。如a=(byte)(255+1);
可以用checked防止这种可能。

int a=4;
int b=20;
byte c;
checked{

c=(byte)(a+b);
}
如果a+b的值不大于byte的最大值会正常转换。如果a+b的值大于byte的最大值会有错误提出。不会给c赋值;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光子炮
2010-05-05 · TA获得超过591个赞
知道小有建树答主
回答量:287
采纳率:100%
帮助的人:358万
展开全部
可以直接加减运算:c#编译器已经做了优化。
所以byte a = 1 + 1 与byte a = (byte)(1 + 1) 都是对的,因此不会影响效率。
你可以测试下byte a = 500 + 1 将在编译时报错,而不是运行时,从而反证这个结论。
但是对于变量就不同了:
int a = 2;
byte b = (int)a 这里的强制转化是必须的,的确可能出现影响效率的问题。所以鱼和熊掌不能兼得,在时间(效率)和空间(内存)的关系上必须权衡利弊。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式