首页 > 解决方案 > 我不能将字节放入字节数组

问题描述

string cetvrtadva = textBox76.Text.Substring(12, 2);   
byte cetvrtadvaa = byte.Parse(cetvrtadva, 
System.Globalization.NumberStyles.AllowHexSpecifier);
byte[] xor = { 0x09 ^ 0x45 ^ 0x3a ^ 0x08 ^ cetvrtadvaa };

为什么我不能将字节添加到字节数组?

错误:无法将 int 隐式转换为 byte。

标签: c#arraysbyte

解决方案


问题是您没有将一个字节放入数组,而是一个 int。

确实,cetvrtadvaa 是一个字节,但您在异或运算中使用的所有其他数字(0x09、0x45 等)都是整数。因此,在实际完成 ^ 之前,将 cetvrtadvaa 转换为 int 以便操作的双方具有相同的类型。

因此,您需要将结果显式转换回:

byte[] xor = { (byte)(0x09 ^ 0x45 ^ 0x3a ^ 0x08 ^ cetvrtadvaa) };

推荐阅读