将char转换为整数表示c#

时间:2011-03-09 15:18:18

标签: c# asp.net

当我尝试运行以下代码时,它总是吐出十六进制表示,而不是整数表示。我在MSDN上找到的大多数例子都说这应该有效。我错过了什么?

                var stringBuilder = new StringBuilder("8");
                int j = 0;
                foreach (char item in stringBuilder.ToString())
                {
                    j = Convert.ToInt32(item); //returns 38, need return to be 56
                }

修改的 我应该明确表示我知道它返回十六进制值的区别。我正在将值输出到文件中,并且在该文件中,它仍然显示十六进制值,而不是整数,所以我认为它与调试环境没有任何关系。

edit2 看起来像是一个PEBKAC问题。查看写入该文件的代码,它使用的是.toString(“X”)方法,将其更改为Hex值。在我的调试环境中它是十六进制这一事实让我很困惑。

5 个答案:

答案 0 :(得分:2)

您如何查看/显示该值?

'8'字符肯定会转换为56.我怀疑您正在以十六进制格式查看数字,因为56(十进制)是38(十六进制)。您只需要以十进制格式查看数字。

答案 1 :(得分:2)

int既不是十六进制也不是十进制。这只是一个数字。您的调试器是否设置为显示整数的十六进制值?

答案 2 :(得分:0)

j是int。 int总是二进制的。这是你以后如何展示它的另一个问题:)

答案 3 :(得分:0)

您使用的是十六进制显示吗? :)右键单击任何Watch面板,取消选中“十六进制显示”。

答案 4 :(得分:0)

我会尝试简单的转换为短或一个字节;这总是让我得到了正确的答案:

var stringBuilder = new StringBuilder("8");
            int j = 0;
            foreach (char item in stringBuilder.ToString())
            {
                j = (byte)item; //should return 56 as expected
            }