定义了一个数组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],形式跟之前的一样啊!

解决方案 »

  1.   

    public class CryptString
    {
    /// 
    /// 返回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;
    }
      

  2.   

    楼上跑题啊!!需要的是int到byte的转换!int的计算是不是都是10进制啊?
      

  3.   

    byte.TryParse(c.ToString(), out buffer[5]);要看十六进制形式的可以用:
    buffer[5].ToString("X");
      

  4.   

    我猜是这样:
    buff[5] = (byte)c;另外:
    "10进制int","16进制byte"这种说法就是错的。
    所说的进制也就是呈现出来数字字符串。
    不要再说什么"10进制int"的话了。一个int在内存中占4个字节,一个byte就1个字节。
    这样赋值会丢失3个字节的内容。
      

  5.   

    Convert.ToByte(Convert.ToString(100, 16))
      

  6.   

    除非用字符表示!
    byte a = 0xFF
    byte b = 255;
    都一样的啊!表示方法不同而已啊,整数!!!!数字
    除非是字符
      

  7.   

    3楼的程序写的部少亚,但是通过framework的bitconverter类的gettypes就一句话搞定了
    Bitconverter.toString(Bitconverter.GetTypes(c=100)) 这样那个100就变成16位的了
      

  8.   

    楼主的问题我真没看明白,现在得到个   c=100   类型为int   ,请教怎么把c转化为16进制,并且赋给buff[5],形式跟之前的一样啊!把c转化为16进制就是说c=100是十进制的100?
    赋给buff[5],buff[5]是byte型,直接buff[5]=(byte)c,就可以赋值了,根本谈不上转化为16进制。
    还有形式跟之前一样,之前是什么啊?手写代码,你要怎么个一样法?我猜楼主可能是想要buffer[5] = 0x100;
    这可能吗?