定义了一个数组byte[] buffer = new byte[6];
buffer[0] = 0xf0;
buffer[1] = 0x03;
buffer[2] = 0x00;
buffer[3] = 0x00;
buffer[4] = 0x00;
现在得到个 c=100 类型为int ,请教怎么把c转化为16进制,并且赋给buff[5],形式跟之前的一样啊!
buffer[0] = 0xf0;
buffer[1] = 0x03;
buffer[2] = 0x00;
buffer[3] = 0x00;
buffer[4] = 0x00;
现在得到个 c=100 类型为int ,请教怎么把c转化为16进制,并且赋给buff[5],形式跟之前的一样啊!
{
///
/// 返回16进制字符
///
/// value
///
public static string GetHexChar(string value)
{
string sReturn = string.Empty;
switch(value)
{
case "10":
sReturn = "A";
break;
case "11":
sReturn = "B";
break;
case "12":
sReturn = "C";
break;
case "13":
sReturn = "D";
break;
case "14":
sReturn = "E";
break;
case "15":
sReturn = "F";
break;
default :
sReturn = value;
break;
}
return sReturn;
}///
/// 返回16进制
///
/// value
/// public static string ConvertHex(string value)
{
string sReturn = string.Empty;
try
{while(int.Parse(value)>16)
{
int v = int.Parse(value);
sReturn=GetHexChar((v%16).ToString())+sReturn;
value=Math.Floor(Convert.ToDouble(v/16)).ToString();
}
sReturn=GetHexChar(value)+sReturn;
}
catch
{
sReturn="###Valid Value!###";
}
return sReturn;
}
}
buffer[5].ToString("X");
buff[5] = (byte)c;另外:
"10进制int","16进制byte"这种说法就是错的。
所说的进制也就是呈现出来数字字符串。
不要再说什么"10进制int"的话了。一个int在内存中占4个字节,一个byte就1个字节。
这样赋值会丢失3个字节的内容。
byte a = 0xFF
byte b = 255;
都一样的啊!表示方法不同而已啊,整数!!!!数字
除非是字符
Bitconverter.toString(Bitconverter.GetTypes(c=100)) 这样那个100就变成16位的了
赋给buff[5],buff[5]是byte型,直接buff[5]=(byte)c,就可以赋值了,根本谈不上转化为16进制。
还有形式跟之前一样,之前是什么啊?手写代码,你要怎么个一样法?我猜楼主可能是想要buffer[5] = 0x100;
这可能吗?