参考MSDN

代码:

 public class BytesOperate{/// <summary>/// 计算校验和,SUM/// </summary>public byte CalculateCheckSum(byte[] data){int sum = data.Aggregate(0, (current, t) => current + t);return (byte)(sum & 0x00ff);}public short CombineBytesToShort(byte high, byte low){short value = (short) (high << 8);  value += low;return   value ;}}

 BytesOperate bytesOperate = new BytesOperate();Assert.AreEqual(262, bytesOperate.CombineBytesToShort(0x01, 0x06));Assert.AreEqual(-2, bytesOperate.CombineBytesToShort(0xff, 0xfe));Assert.AreEqual(-1.6, (double)bytesOperate.CombineBytesToShort(0xff, 0xf0) / 10);

使用unchecked:

        [TestMethod]public void SignedTest(){int valueInt = 0xfff0;Console.WriteLine("原始值:"+ valueInt);Console.WriteLine("原始值十六进制:"+ valueInt.ToString("x"));byte high = (byte)(valueInt >> 8);Console.WriteLine("高位值:"+high);Console.WriteLine("高位值十六进制:"+high.ToString("x"));byte low = (byte)valueInt;Console.WriteLine("低位值:"+low);Console.WriteLine("低位值十六进制:"+low.ToString("x"));short valueShort =(short)(high << 8);Console.WriteLine("高位左移8:"+valueShort);Console.WriteLine("高位左移8十六进制:"+valueShort.ToString("X"));valueShort += low;Console.WriteLine("加上低位"+valueShort);Console.WriteLine(valueShort);Console.WriteLine(valueShort.ToString("X"));Assert.AreEqual(-16,valueShort);unchecked{short anotherValue = (short)0xfff0;Assert.AreEqual(-16,anotherValue);}}

转载于:https://www.cnblogs.com/pangkang/p/6089198.html

c# unchecked关键字。byte 合并short相关推荐

  1. Java 8 中 Byte、Short、Integer、Long内部缓存类的对比与源码分析

    这是<水煮 JDK 源码>系列 的第7篇文章,计划撰写100篇关于JDK源码相关的文章 对于基本数据类型的包装类 Byte.Short.Integer.Long ,其内部实现都有一个缓存类 ...

  2. 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)...

    C#的数据类型可以分为3类:数值类型,引用类型,指针类型.指针类型仅在不安全代码中使用. 值类型包括简单类型(如字符型,浮点型和整数型等),集合类型和结构型.引用类型包括类类型,接口类型,代表类型和数 ...

  3. java switch char_Java7中Switch为什么只支持byte、short、char、int、String

    Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进.到目前为止switch支持这样几种数据类型:byte short int char String .但是,作 ...

  4. java基本数据类型 byte、short、int、long、float、double、char的范围和运算中注意的事项(详细)

    1.Java的8种基本数据类型及其所占空间大小: 注意: ①为什么float占4个字节,而long占8个字节,float表示的范围却比long要大得多呢? 原因简单说是因为二者存储的模式不同,long ...

  5. 【Java】- Incompatible types. Found: java. lang. String', required:' byte, char, short or int'

    IDEA项目编译报错:Incompatible types. Found: java. lang. String', required:' byte, char, short or int',swit ...

  6. java赋值运算的类型转换出新的问题_Java中byte、short、char、int、long运算时自动类型转化问题...

    -------------------------------------------------------------------------------------------------- ★ ...

  7. Java byte[]与short[]之间转换

    直接上代码: import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Arrays;import org.apa ...

  8. java中byte和short类型的相互转换(不是用隐式转换)

    技术点: 计算机中存储是用补码!!,同时注意一下计算省略了高位不变部分 1.byte:有符号(意思是有正和负),在网络传输中都是会用到byte的,它占1个字节,共8位,比如说11111111就可以用1 ...

  9. 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)

    C#的数据类型可以分为3类:数值类型,引用类型,指针类型.指针类型仅在不安全代码中使用. 值类型包括简单类型(如字符型,浮点型和整数型等),集合类型和结构型.引用类型包括类类型,接口类型,代表类型和数 ...

最新文章

  1. c++11 function
  2. mac软件全屏时候最顶上任务栏保留,MAC能不能做一个把程序放在顶部菜单栏的功能...
  3. 《切入口web教学——使用firebug调试css代码》录制完成
  4. 《NO STRATEGY》《重塑战略》
  5. StrategyPattern--策略模式java实现
  6. HDU 2064:汉诺塔III
  7. TensorFlow 1.12.2 发布,修复 GIF 构造安全漏洞
  8. 财务软件开发_财务独立对软件开发人员的重要性
  9. 前端学习(1306):node.js模块的加载机制
  10. LBS由ip查经纬度
  11. jCasbin:支持MAC、RBAC、ABAC多种模型的Java权限管理框架
  12. 8153网卡linux驱动,绿联Type-c千兆网卡RTL8153驱动
  13. python re.match函数的使用
  14. linux添加凤凰引导,凤凰系统率先升级内核到Linux4.9
  15. html怎么清除背景颜色,怎么去除Word复制网页内容的背景色?
  16. 用Python做一个Mean Rerversion策略
  17. 关于python语言数值操作符_下列哪种物质是体内硫酸基的提供者
  18. 发现一个有趣的漫画网站
  19. 图片的体积怎么压缩?这三种方法你会吗?
  20. npm 如何更新项目最新依赖包

热门文章

  1. 分析与解决windows10下上网很慢
  2. 用Python写的一个monkeyrunner小工具(支持手机截图与定时截图,手机屏幕的显示)
  3. 干货 | 携程度假无线前端架构演进之路
  4. 中国SaaS死或生之六:逢场作戏or脚踏实地?
  5. 吴军:区块链催生了新的生产关系
  6. 关于mysql的“+0”操作
  7. 框架:Spring的自动装配
  8. Vector找最大值 最小值
  9. idea 中 git 修改了文件却无法提交(No Changes detected)
  10. Spring Boot配置嵌入式Servlet容器的两种方法