ByteArray的操作总结(复制、打印、位运算)
1. 字节数组的复制
Method A:Array.Clone()
Clone返回的是Object对象,需要强类型转换;Clone会创建一个新的对象,并将value赋给dec
byte[] src = new byte[];
byte[] dst= new byte[];
dst = (byte[])src.Clone();
Method B: Array.Coby
有多个重载版本
byte[] src = new byte[]; //原数组
byte[] dst = new byte[]; //目标数组
int srcOffset = ; //原数组偏移量
int dstOffset = ; //目标数组偏移量
Array.Copy(src, srcOffset, dec, dstOffset, dst.Length);
Method C: Buffer.BlockCopy
该方法最为常用
byte[] src = new byte[]; //原缓冲区
byte[] dst = new byte[]; //目标缓冲区
int srcOffset = ; //src字节偏移量,从0开始
int dstOffset = ; //dst字节偏移量,从0开始
Buffer.BlockCopy(src, srcOffset, dst, dstOffset, dst.Length);
2. 字节数组的转换
Method A: Print ByteArray
byte[] array = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
string str = BitConverter.ToString(array);
//str = "00-01-02-03-04"
Method B: Encoding.Default.GetString(byteArray)
将数组中的所有字节解析为应字符串
byte[] array = new byte[] { 0xFE, 0xFE, 0xFE };
string str = Encoding.ASCII.GetString(array);
//str = "???"
Method C: 源类型未知
byte[] src = new byte[] { 0xFE, 0xFE, 0xFE };
StreamReader sr = new StreamReader(new MemoryStream(src));
string str = sr.ReadToEnd();
//str = "???"
3. 字符串转字节数组: Encoding.Default.GetBytes()
string str = "???";
byte[] bytes = Encoding.Default.GetBytes(str);
//bytes = [0xFE, 0xFE, 0xFE, 0xFE]
ByteArray的操作总结(复制、打印、位运算)的更多相关文章
- HUST 1605 Gene recombination(广搜,位运算)
题目描述 As a gene engineer of a gene engineering project, Enigma encountered a puzzle about gene recomb ...
- 【2018寒假集训 Day1】【位运算】翻转游戏
翻转游戏(flip) [问题描述] 翻转游戏是在一个 4 格×4 格的长方形上进行的,在长方形的 16 个格上每 个格子都放着一个双面的物件.每个物件的两个面,一面是白色,另一面是黑色, 每个物件要么 ...
- Numpy | 13 位运算
NumPy "bitwise_" 开头的函数是位运算函数.本章都是按二进制来操作的. NumPy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操 ...
- c#枚举位运算操作
抛出预设问题 需要有一个npc需要在一周中的,周一,周二,周三会出现,其他时间不可见 解决问题 因为一周时间是固定的,所以创建枚举类型比较合适,如下 enum Days { None, Sunday, ...
- 位运算之——按位与(&)操作——(快速取模算法)
学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 ...
- 【Java基础】14、位运算之——按位与(&)操作——(快速取模算法)
学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 ...
- java位运算(操作)的使用
位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法 ...
- 位运算 之(1) 按位与(AND)& 操作
文章作者:ktyanny 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快. 按位与(Bitwise AND),运算符号为& a&b 的操作的结果:a.b中对应位 ...
- C 碎片九 预处理&位运算&文件操作
一.预处理 预处理语句:#开头的语句,在预处理阶段处理预处理语句.包括宏定义.文件包含处理.条件编译 1, 宏定义 1. 不带参数宏定义:#define 标识符 字符串 #define PI 3.1 ...
随机推荐
- ActionBarActivity设置全屏无标题
新建的Activity继承自ActionBarActivity,设置全屏无标题本来非常easy的事,可是没想到app居然无缘无故的挂,要么就是白屏一片,要么就是黑屏.坑了我一个多小时.!! 原因是Ac ...
- 【翻译自mos文章】怎么正确的计算一个ip地址的subnet id?
怎么正确的计算一个ip地址的subnet id? 来源于: How to calculate the correct subnet for an interface (文档 ID 1059759.1) ...
- .net core 实现npoi导出
Nuget 安装 NPOI 2.4.1 工作时间写着测试玩玩 public void ExportDataToExcel() { var workbook = new HSSFWorkbook(); ...
- 跨域调用接口——WebClient通过get和post请求api
AJAX不可以实现跨域请求,经过特殊处理才行.一般后台可以通过WebClient实现跨域请求~ //get 请求 string url = string.Format("htt ...
- hdu1045 - 贪心,二分图
题目链接 左边白方格里放小球,满足同一行.列只有一个(被黑块隔开).问最多放多少个球. -------------------------------------------------------- ...
- eclipse的maven工程视图切换
上面图切换成下面图: 点击eclipse右上角,如下图红圈,然后在选择javaEE这样就切换成javaEE视图了
- [BeiJing2006]狼抓兔子 dijkstra+平面图最小割
一眼裸的最大流求最小割,然而数据范围过大,跑不下来. 我们可以将平面图转成对偶图,并进行连边. 这样,每条边的长度就对应原图中的割边长度. 起点到终点的最短路即为最小割. 别用SPFA,会死的很惨 C ...
- CSS3中的transition
W3C标准中对CSS3的transition是这样描述的: CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击,获得焦点,被点击或对元素任何改变中触发, ...
- span文本自动换行
.span{ word-wrap: break-word; word-break: break-all; overflow: hidden; }
- Vue学习之v-if与v-show的区别
v-if和v-show具有类似的功能,不过v-if才是真正的条件渲染,他会根据表达式适当的销毁或重建元素及绑定事件或子组件.若表达式初始值为false,则一开始元素或组件不会渲染,只有当第一次为真时, ...