zoukankan      html  css  js  c++  java
  • C#中byte类型运算

     首先看下面一段代码

    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。

    学习,以记之。如有错漏,欢迎指正

    作者:冯子武
    出处:http://www.cnblogs.com/Zev_Fung/
    本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
    如果博文对您有所收获,请点击下方的 [推荐],谢谢

  • 相关阅读:
    相机标定/校正(Camera Calibration)
    彩色图像直方图均衡(Histogram Equalization)
    SQL--数据的检索
    SQL--数据的增删改
    SQL--数据库的创建与管理
    java学习笔记之异常、断言
    Mysql学习笔记(二)
    初学机器学习(一)
    Mysql学习笔记(一)
    软件课设Day15
  • 原文地址:https://www.cnblogs.com/Zev_Fung/p/6424095.html
Copyright © 2011-2022 走看看