C#中两个byte如何相加
发现问题
有人会想相加?还不简单,用 + 呀。
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[]和String之间转换的方法
本文给大家介绍如何在Byte[]和String之间进行转换? 比特(b):比特只有0 1,1代表有脉冲,0代表无脉冲.它是计算机物理内存保存的最基本单元. 字节(B):8个比特,0-255的整数表示 编码:字符必须编码后才能被计算机处理.早期计算机使用7为AscII编码,为了处理汉字设计了中文简体GB2312和big5 字符串与字节数组之间的转换,事实上是现实世界的信息和数字世界信息之间的转换,势必涉及到某种编码方式,不同的编码方式将导致不同的转换结果.C#中常使用System.Text.Enc
-
Java中字符串与byte数组之间的相互转换
前言 Java与其他语言编写的程序进行tcp/ip socket通讯时,通讯内容一般都转换成byte数组型,java在字符与数组转换也是非常方便的.下面跟我一起来了解一下字符串与byte之间转换的原理 原理 我们都知道,在Java里byte类型是占用1个字节,即8位的,而16进制的字符占用4位,所以每个byte可以用两个字符来表示,反之亦然. 举个例子 byte = 123 用二进制表示:0111 1011 每4位用字符表示: 7 b 是的,原理就这么简单,接下来用代码实现: byte[] 转1
-
C#中Byte转换相关的函数
1.将一个对象转换为byte对象 public static byte GetByte(object o) { byte retInt = 0; if (o != null) { byte tmp; if (byte.TryParse(o.ToString().Trim(), out tmp)) { retInt = tmp; } } return retInt; } 2.将一个十六进制字符串转换为byte对象,字符串以0x开头 public static byte GetByteFormHe
-
C语言中的BYTE和char深入解析
例如,在下面的源程序中""""之内的"你"."好".","."C"."!"."\n"就属于程序要处理的字符. 复制代码 代码如下: #include <stdio.h>int main(void){ printf("你好,C!\n"); return 0;} 该源程序中的其他字符则属于书写源
-
C#实现Stream与byte[]之间的转换实例教程
本文以实例形式详细介绍了C#实现Stream与byte[]之间的转换的方法,分享给大家供大家参考之用.具体方法如下: 一.二进制转换成图片 MemoryStream ms = new MemoryStream(bytes); ms.Position = 0; Image img = Image.FromStream(ms); ms.Close(); this.pictureBox1.Image 二.C#中byte[]与string的转换代码 1. System.Text.UnicodeEncod
-
C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换
定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串转比特数组 复制代码 代码如下: (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert.FromBase64String("字符串"); 2.字符串转流 复制代码 代码如下: (1)MemoryStream ms=new MemoryStream(System.Text.Encoding.
-
C#中string与byte[]的转换帮助类-.NET教程,C#语言
主要实现了以下的函数 代码中出现的sidle是我的网名. /**//* * @author wuerping * @version 1.0 * @date 2004/11/30 * @description: */ using system; using system.text; namespace sidlehelper { /**//// <summary> /// summary description for strhelper. /// 命名缩写: ///
-
C# Stream 和 byte[] 之间的转换
/* - - - - - - - - - - - - - - - - - - - - - - - - * Stream 和 byte[] 之间的转换 * - - - - - - - - - - - - - - - - - - - - - - - */ /// <summary> /// 将 Stream 转成 byte[] /// </summary> public byte[] StreamToBytes(Stream stream) { byte[] bytes
-
C# byte数组与Image相互转换的方法
功能需求: 1.把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库. 2.把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示. 3.从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上. 这里的Image是System.Drawing.Image. 以下三个函数分别实现了上述三个需求: 复制代码 代码如下: // Convert Image to Byte[] private byte[] ImageToByte(Im
-
Python每天必学之bytes字节
Python中的字节码用b'xxx'的形式表示.x可以用字符表示,也可以用ASCII编码形式\xnn表示,nn从00-ff(十六进制)共256种字符. 一.基本操作 下面列举一下字节的基本操作,可以看出来它和字符串还是非常相近的: In[40]: b = b"abcd\x64" In[41]: b Out[41]: b'abcdd' In[42]: type(b) Out[42]: bytes In[43]: len(b) Out[43]: 5 In[44]: b[4] Out[44]
-
bit,bytes 是什么意思?
bit,bytes 是什么意思? Bit,位 二进制数系统中,每个0或1就是一个位(bit),位是内存的最小单位. Byte,字节 字节是由8个位所组成,可代表一个字符(A~Z).数字(0~9).或符号(,.?!%&+-*/),是内存储存数据的基本单位. 1 byte = 8 bit 1 KB = 1024 bytes =210 bytes 1 MB = 1024 KB = 220 bytes 1 GB = 1024 MB = 230 bytes
随机推荐
- python实现图片批量剪切示例
- C++ 中const对象与const成员函数的实例详解
- jquery制作搜狐快站页面效果示例分享
- Python单元测试_使用装饰器实现测试跳过和预期故障的方法
- 写给iOS程序员的命令行使用秘籍
- PHP实现执行外部程序的方法详解
- PHP 分页类(模仿google)-面试题目解答
- 简述MySQL 正则表达式
- PHP贪婪算法解决0-1背包问题实例分析
- Android中自定义View实现圆环等待及相关的音量调节效果
- php chr() ord()中文截取乱码问题解决方法
- 8个实用的jQuery技巧
- 详解Python中for循环的使用
- jQuery用noConflict代替$的实现方法
- js操作select控件的几种方法
- 完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
- C#常用自定义函数小结
- 详解C语言用malloc函数申请二维动态数组的实例
- Android 设置主题实现点击波纹效果的示例
- 使用Python+Splinter自动刷新抢12306火车票