sgdd.net
当前位置:首页 >> C#中如何将一个short型数据转换成两个BytE型数据 >>

C#中如何将一个short型数据转换成两个BytE型数据

list<short> a = new list<short>(); short [] byte = new byte[a.count]; for(int i = 0; i < a.count; i++) { byte[i]= a[i]; //这个地方要用short转换成byte的方法 }

你的意思是说把同一个内存以byte数组的形式读出么?可以用unsafe的代码,用union的方式把short和byte[]指向同一个内存,然后用short方式写入,用byte的方法读.不然,就是用memorystram, 用binarywrite把一个short的数据写入,然后复位读取位置,用binaryreader读出byte数组.

List<short> a = new List<short>(); short [] byte = new byte[a.count]; for(int i = 0; i < a.count; i++) { byte[i]= a[i]; //这个地方要用short转换成byte的方法 }

这里主要是要用到System.Text.Encoding这个库string str ="abcd";byte[] arr = new byte[] { };//此处的"编码方式"有多种,比如UTF8、UTF7、Unicode、ASCIIarr = Encoding.编码方式.GetBytes[str];

string s="ssasfs" ; byte[] by = System.Text.ASCIIEncoding.UTF8.GetBytes(s.ToCharArray()); string st = ""; foreach (byte b in by) { st += b.ToString(); } MessageBox.Show(st);或者这样也可以.由于byte是存储数值类型的,所以输出的是数字.

<p>额,要将两个byte型拼接成16位二进制,再转化为十进制应该怎么弄呢</p> <p></p> short s = 0; //一个16位整形变量,初值为 0000 0000 0000 0000byte b1 = 1; //一个byte的变量,作为转换后的高8位,假设初值为 0000 0001byte b2 = 2;

byte 多是在读写二进制文件的时候用 short .这个基本就不用 int .这个就不多说了把 long int的长度不够用的时候 要说注意的话 运算的时候byte和short都会被当作int处理 直接写的数字也是int 这个时候要注意强制类型转换 比如 byte b = 1+2; //这样写会保错 必须 byet b =(byet)1+2;

short类型为转换参考如下:short i = 10;byte a = i & 0xFF;上述方法如果 i 大于255,将忽略高8位,如果 i 小于255, 两者相等

/// <summary> /// 16进制字符串转换成字节数组 /// </summary> /// <param name="s"></param> /// <returns></returns> public static byte[] HexStringToByteArray(string s) { s = s.Replace(" ", ""); byte[] buffer = new byte[s.Length / 2]; for (int i = 0

byte 是字节型,字节,就是储存数据的一种单位而已,一般用于二进制文件的读写.char 是字符型,字符,就是单个的字母、数字、符号等等.string 是字符串型,字符串,就是若干个字符.而且 byte[] 和 char[] 都是数组类型,string 是变量类型,三者没法直接比较.要么是 byte[]、char[]、string[],要么 byte、char、string.如果要定义一个字符串变量,那么应该用 string;如果是一个字符串数组,那么应该用 string[].

相关文档
tongrenche.com | rprt.net | tfsf.net | qwfc.net | rtmj.net | 网站首页 | 网站地图
All rights reserved Powered by www.sgdd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com