那你看执行的程序是否能够通过流或者字节数组去执行了,据我所知绝大多数程序是没有这个功能的
回答补充:
如果程序支持流的话,你可以使用MemoryStream包裹一个字节数组,然后当作Stream来使用,外部程序是没办法直接读取你的托管内存值的
1、C语言中的字符类型即char类型,一般情况占1个字节,因此一般使用char类型来描述字节数组。比如
char sz_byte[256];2、有时候为了阅读文件,会将char类型说明为BYTE类型。需要借助于typedef关键字。比如
typedef char BYTE;BYTE buff[16] = {0};
1)函数GetByteArray返回转换后的字节数组,完整程序如下:
class Program
{
static void Main()
{
string ss = "FE FE FE 68 20";
byte[] bArray = GetByteArray(ss);
foreach (var b in bArray)
{
ConsoleWrite("{0:X2} ", b);
}
ConsoleWriteLine();
}
public static byte[] GetByteArray(string shex)
{
string[] ssArray = shexSplit(' ');
List<byte> bytList = new List<byte>();
foreach (var s in ssArray)
{
//将十六进制的字符串转换成数值
bytListAdd(ConvertToByte(s, 16));
}
//返回字节数组
return bytListToArray();
}
}
2)运行结果
byte[] target = SystemTextEncodingUTF8GetBytes(text);
byte[] b = new byte[601];
for (int i = 0; i < 601;i++ )
{
b[i] = ConvertToByte(target[(i + 2) 2] 256 + target[(i + 2) 2+1]);
}
}
这样就编译通过了,但是这个代码还是会报错,因为byte最大就127,你这个 target[(i + 2) 2] 256 + target[(i + 2) 2+1可定会超过的出现溢出错误。
char和byte都是8位。char默认是signed还是unsigned看编译器,一般是signed也就是有符号char类型,范围为0-127它的最高位是不用的,为0
byte范围0-255,。所以char转byte直接强制类型转换就可以,不会丢失数据
C++没有byte类型。
变通方式:
unsigned char a[3];替换byte数组。
char的大小是一个字节,所以可以当作字节数组使用。
例如 :
byte a[3];
a[0] = 'a';
可改成
unsigned char a[3];
a[0] = 'a';
以上就是关于C#如何依次读取Byte[]数组的一个元素;public byte[] data; //data有很多个元素全部的内容,包括:C#如何依次读取Byte[]数组的一个元素;public byte[] data; //data有很多个元素、单片机C语言里怎么定义BYTE型的数组、C#中字符串转换为byte型数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)