首先看下面一段代码

byte x = 1;
byte y = 2;
byte z = x + y;
Console.WriteLine(z);

可能很多人会说显示结果是3。

其实,这段代码无法运行,因为编译就不通过报错,错误原因:错误 1 无法将类型“int”隐式转换为“byte”。存在一个显式转换(是否缺少强制转换?)

因为,byte类型之间运算会隐式转换成int类型,然后对int类型值进行运算,得到的结果是int类型,所以直接用byte类型变量保存结果会报错。实际上short和char类型相互运算操作也做这样的处理。之所这样设计,可能byte、short和char类型相互运算操作,数值可能会发生溢出错误,所以在运算的时候直接都转换为int来运算,达到强制结果用int类型保存。

如果认为运算后结果不会溢出的情况,可以显式保存结果

byte x = 1;
byte y = 2;
byte z = (byte)(x + y);
Console.WriteLine(z);

  

再看下面这段代码

byte z = 1 + 2;
Console.WriteLine(z);

在vs上编译和运行没问题的,结果是3。

1+2是常量运算,得到的就是3,然后赋值给z。

C#中byte类型运算的更多相关文章

  1. C++开发中BYTE类型数组转为对应的字符串

    下午密码键盘返回了一个校验码,是BYTE类型数组,给上层应用返回最好是字符串方式,怎样原样的将BYTE数组转为string串呢?不多说,开动脑筋上手干!!! BYTE格式的数组bt{08,D7,B4, ...

  2. Java 中 byte 类型初始化问题

    很早的时候由于工作需要,接触过一点 Java,于是有了这个坑,今天回头看到自己在 Stackoverflow 上提的问题发现了它,于是再记录下. 在使用中,需要将 byte 类型的的每一位都置 1.我 ...

  3. 关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)

    先看一段推理<*一切都是在8个比特位的前提下,讨论二进制的符号位,溢出等等,才有意义*> +124:0111 1100 -124:1000 0100 +125:0111 1101 -125 ...

  4. Java中Byte类型数据在运算中的问题

    比如: byte a=1; byte b=2; byte c; c=a+b; //这样是计算不出c,是错误的 c=a+1; //这样也是不能计算c的 c=64+1; //为什么这样就能计算c,在Jav ...

  5. JAVA中double类型运算结果异常的解决

    问题: 对两个double类型的值进行运算,有时会出现结果值异常的问题.比如: System.out.println(19.99+20); System.out.println(1.0-0.66); ...

  6. C#中byte[]类型转换为其它类型

    我们这里就举byte[]类型和long类型的转换,其它数据类型用BitConverter类以此类推: /// <summary> /// 字节数组转换为long类型 /// </su ...

  7. java中byte类型

    http://www.cnblogs.com/Robotke1/archive/2013/05/25/3099309.html ------------------------------------ ...

  8. C#中byte类型转换为double类型

    // Initialize unmanged memory to hold the array. int size = Marshal.SizeOf(bytes[0]) * bytes.Length; ...

  9. 详解java中的byte类型

    Java也提供了一个byte数据类型,并且是基本类型.java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,也就是signed byte.下面这篇文章主要给大家介绍了关于j ...

随机推荐

  1. HDU 5883 The Best Path (欧拉路或者欧拉回路)

    题意: n 个点 m 条无向边的图,找一个欧拉通路/回路使得这个路径所有结点的异或值最大. 析:由欧拉路性质,奇度点数量为0或2.一个节点被进一次出一次,度减2,产生一次贡献,因此节点 i 的贡献为 ...

  2. Node学习图文教程之express重写留言本案例

    写在前面 小伙伴们大家好,我是你们的pubdreamcc,接着前面的学习,这篇博文出至于我的GitHub仓库:Node学习教程资料,如果你觉得对你有帮助,欢迎star,你们的点赞是我持续更新的动力,谢 ...

  3. 20170407-ms

    invoke v调用 dismiss v解雇   exclusive adj. 专用的; 高级的; 排外的; 单独的;  n. 独家新闻; 专有物; 独家经营的产品(或项目.设计等); 排外者; ex ...

  4. 基于FBX SDK的FBX模型解析与加载 -(三)

    http://blog.csdn.net/bugrunner/article/details/7229416 6. 加载Camera和Light 在FBX模型中除了几何数据外较为常用的信息可能就是Ca ...

  5. 洛谷 P1314 聪明的质监员【二分+前缀和】

    真是zz, 题目很显然是二分W,然后判断,我一开始是用线段树维护当前w[i]>W的个数和v(公式就是区间满足要求的个数*满足要求的v的和),然后T成70 后来想到树状数组差分常数或许会小,于是改 ...

  6. Firefox下载安装fireBug提示下载出错的解决方案

    火狐官方扩展中心在国外,国内可能访问某一节点出现了问题.所以可能扩展无法安装,并且扩展更新可能出现问题,导致启动检查扩展更新过慢影响启动.我们可以通过修改系统hosts文件加速访问.修改hosts文件 ...

  7. pip 安装出现提示

    The directory '/home/zdj/.cache/pip/http' or its parent directory is not owned by the current user a ...

  8. JSP | 基础 | 两种方式循环输出

    用循环连续输出三个你好,字体从小变大 第一种: <body> <%! //通过表达式方式调用实现 String HelloJSP1(){ String str = "&qu ...

  9. 记忆化搜索(DFS+DP) URAL 1223 Chernobyl’ Eagle on a Roof

    题目传送门 /* 记忆化搜索(DFS+DP):dp[x][y] 表示x个蛋,在y楼扔后所需要的实验次数 ans = min (ans, max (dp[x][y-i], dp[x-1][i-1]) + ...

  10. jmeter(二十二)jmeter测试Java请求

    目的:对Java程序进行测试 目录 一.核心步骤 二.实例 三.JMeter Java Sampler介绍 四.自带Java Request Sampler 一.核心步骤 1.创建一个Java工程: ...