C#中两个byte如何相加
2018-10-12 14:07
3555 查看
发现问题
有人会想相加?还不简单,用 + 呀。
byte a = 1; byte b = 2; byte c = a + b;
以上代码是通不过编译的,因为编译器对待 + 时,有 int 相加、有 decimal 相加、有字符串相加……就是没有 byte 相加,所以它会用最接近的 int 相加,自然返回的结果也是 int,而 int 类型是不能直接赋值给更小的 byte 类型的。
解决方法
所以,得改成这样:
byte a = 1; byte b = 2; byte c = (byte)(a + b);
还好
+=不存在这个问题,
a += b是没问题的。
byte 最大值
byte 最小值是 0,最大值是 255,所以
byte a = 256是通不过编译的。
而 + 超过的就不一样了。
byte a = 255; a += 1; // 这里结果是 0 byte b = 150; b += 150; // 这里结果是 44,若改为:b = (byte)(b + 150); 是一样的。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
您可能感兴趣的文章:
相关文章推荐
- 在C#中如何比较两个byte[]数组相等
- 在C#中如何比较两个byte[]数组相等
- C# 如何求两个日期之间的时间
- java如何对两个超大数相加
- 如何判断两个整数相加减是否溢出
- [C#] 如何把void*转换为byte[]
- 两个小知识:C#如何设置开机启动时自动执行程序|C# WinForm打开超链接
- PHP两个数组相加如何合并?
- [C#]如何将自定义的structure转换为byte[]?
- C#如何实现Object与byte[]的互相转换
- 如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- C#中如何获得两个日期之间的天数差
- C里如何将两个8位的byte组合成一个16位的int
- java如何对两个超大数相加
- C#中如何将字符串转换byte[],同时如何将byte[]换成字符串?
- 如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据
- 如何判断两个整数相加减是否溢出
- [C#] 如何把void*转换为byte[]
- 谈JAVA中如何将两个byte数组合成一个数组