使用IO在C#中读取十六进制

时间:2011-04-10 00:11:07

标签: c# hex

我正在从C#迁移到Java,似乎无法找到任何相关信息。我正在尝试读取一个使用十六进制的文件,在Java中我使用...

        String s = Integer.toHexString(hexIn);
        if(s.length() < 2){
            s = "0" + Integer.toHexString(hexIn);
        }

因为我确定你知道这就是所以如果读入的字节是一个字符长,它会增加一个零来使它成为十六进制,我想为c#做同样的事情到目前为止我有......

        StreamReader reader = new StreamReader(fileDirectory);
        long stickNoteLength = fileDirectory.Length;

        int hexIn;
        String hex = "";

        for (int i = 0; (hexIn = reader.Read()) != -1; i++)
        {

        }

现在我卡住了,对不起,如果这是一个简单的问题并感谢您的帮助:)

2 个答案:

答案 0 :(得分:3)

string hex = String.Format("{0:X2}", hexIn);

使用此格式化掩码,您将获得0到32之间的数字(例如):

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

我添加了 2 0:X2),因为您提到您正在阅读字节。 注意,表示十六进制数也适用于在字符串开头添加 0x

string hex = String.Format("0x{0:X2}", hexIn);

答案 1 :(得分:1)

试试这个

hex = hexIn.ToString("X");

hex = Convert.ToString(hexIn,16);