请问我如何将十进制500转化成16进制1F4分开存放成 01 F4 两个字节呢?

解决方案 »

  1.   


                string str = Convert.ToString(500, 16);
                string str1 = str.Substring(0,str.Length - 2);
                string str2 = str.Substring(str.Length - 2, 2);
                byte[] barray = new byte[2];
                barray[0] = Convert.ToByte(str1, 16);
                barray[1] = Convert.ToByte(str2, 16);
      

  2.   

                int i = 500;
                string strHex = string.Empty;
                strHex = i.ToString("X");
                Console.WriteLine(strHex);
                
      

  3.   

    这个需求有点无厘头.
    最好说说为什么要这样.1f4 相当于 [一百F十4] 不过是16进制的.01f4 如果分成2个字节来存储 真的是很无里头的.好比你要把10进制int 254 分成2个字节
    254正常情况 应该分成4个字节:[254][0][0][0]
    如果你要把 0254 分成2个字节存放,并且还存成这样的格式:
    [02][54]
    那么这个东西表达的int含义将发生巨变.
    除非你这是一组加密算法,将来会依据这个规则转换回去.否则实在不知道你这样表达有什么意义.int转换成byte数组原理:
    例如int 300,因为int占4字节,所以byte数组长度为4,先将300转换成二进制:00000000 00000000 00000001 00101100,然后将每个字节转换成十进制由低到高存入byte数组中,所以最后结果是44 1 0 0 ,byte[0]=44 byte[1]=1 byte[2]=0 byte[3]=0 
      

  4.   

    简单快速的办法:            int i = 500;
                byte a = (byte)((i & 0x0000ff00) >> 8);
                byte b = (byte)((i & 0x000000ff));
      

  5.   

    更简单一些:  int i = 500;
      byte a = (byte)(i >> 8);
      byte b = (byte)i;
      

  6.   


                strRoom = Convert.ToString(Convert.ToInt32(getRoomNo(lbRoom.SelectedItem.ToString())), 16);
                if(strRoom.Length <3)
                {
                    strRoom = "00" + strRoom;
                    MessageBox.Show(strAreaNo + strBuliding + strFloor + strRoom);
                }
                else
                {
                    strHRoom = strRoom.Substring(0, strRoom.Length - 2);
                    if (strHRoom.Length < 2)
                    {
                        strHRoom = "0" + strHRoom;
                    }                strLRoom = strRoom.Substring(strRoom.Length - 2, 2);
                    MessageBox.Show(strAreaNo + strBuliding + strFloor + strHRoom + strLRoom);
                }由于最后我要调用P2P函数,是以字符串的形式发送出去,所以我最后还是采用lpingz的方法,不过谢谢大家的回家,都有分哈!结贴咯~
      

  7.   

    兄弟,你是不是要把它转为8位作为通信用呢?如果是你可以用Convert.ToByte()转为字节数据存于一个byte数组中!比如byte[0]=Convert.ToByte(Convert.ToInt32(“01”,16))
      

  8.   

    是将字符串分位字节存储吗?比如"aaff"这样的分成byte[0]=0xaa和byte[1]=0xff这中吗?你把问题说清楚一点呢?