c# unchecked关键字。byte 合并short
参考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相关推荐
- Java 8 中 Byte、Short、Integer、Long内部缓存类的对比与源码分析
这是<水煮 JDK 源码>系列 的第7篇文章,计划撰写100篇关于JDK源码相关的文章 对于基本数据类型的包装类 Byte.Short.Integer.Long ,其内部实现都有一个缓存类 ...
- 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)...
C#的数据类型可以分为3类:数值类型,引用类型,指针类型.指针类型仅在不安全代码中使用. 值类型包括简单类型(如字符型,浮点型和整数型等),集合类型和结构型.引用类型包括类类型,接口类型,代表类型和数 ...
- java switch char_Java7中Switch为什么只支持byte、short、char、int、String
Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进.到目前为止switch支持这样几种数据类型:byte short int char String .但是,作 ...
- java基本数据类型 byte、short、int、long、float、double、char的范围和运算中注意的事项(详细)
1.Java的8种基本数据类型及其所占空间大小: 注意: ①为什么float占4个字节,而long占8个字节,float表示的范围却比long要大得多呢? 原因简单说是因为二者存储的模式不同,long ...
- 【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 ...
- java赋值运算的类型转换出新的问题_Java中byte、short、char、int、long运算时自动类型转化问题...
-------------------------------------------------------------------------------------------------- ★ ...
- Java byte[]与short[]之间转换
直接上代码: import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Arrays;import org.apa ...
- java中byte和short类型的相互转换(不是用隐式转换)
技术点: 计算机中存储是用补码!!,同时注意一下计算省略了高位不变部分 1.byte:有符号(意思是有正和负),在网络传输中都是会用到byte的,它占1个字节,共8位,比如说11111111就可以用1 ...
- 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)
C#的数据类型可以分为3类:数值类型,引用类型,指针类型.指针类型仅在不安全代码中使用. 值类型包括简单类型(如字符型,浮点型和整数型等),集合类型和结构型.引用类型包括类类型,接口类型,代表类型和数 ...
最新文章
- c++11 function
- mac软件全屏时候最顶上任务栏保留,MAC能不能做一个把程序放在顶部菜单栏的功能...
- 《切入口web教学——使用firebug调试css代码》录制完成
- 《NO STRATEGY》《重塑战略》
- StrategyPattern--策略模式java实现
- HDU 2064:汉诺塔III
- TensorFlow 1.12.2 发布,修复 GIF 构造安全漏洞
- 财务软件开发_财务独立对软件开发人员的重要性
- 前端学习(1306):node.js模块的加载机制
- LBS由ip查经纬度
- jCasbin:支持MAC、RBAC、ABAC多种模型的Java权限管理框架
- 8153网卡linux驱动,绿联Type-c千兆网卡RTL8153驱动
- python re.match函数的使用
- linux添加凤凰引导,凤凰系统率先升级内核到Linux4.9
- html怎么清除背景颜色,怎么去除Word复制网页内容的背景色?
- 用Python做一个Mean Rerversion策略
- 关于python语言数值操作符_下列哪种物质是体内硫酸基的提供者
- 发现一个有趣的漫画网站
- 图片的体积怎么压缩?这三种方法你会吗?
- npm 如何更新项目最新依赖包