转换为八进制时出现奇怪的FormatException

时间:2016-08-02 14:02:00

标签: c# decimal octal

所以我有一个整数javafx-maven-plugin我不希望很多人理解为什么我这样做,但最终的结果是我是什么尝试做的是获得八进制数208(二零八)的基数10表示。我希望令人困惑的事情(对于试图回答这个问题的人来说)虽然208是一个整数,但我更像是一个包含字符2,零和8的字符串。 如果对此有任何疑问,请告诉我,因为我认为这会引起一些混乱。

无论如何,要获得“208”的基数10表示,我就是这样做的:

  1. 208 208转换为int“208”。
  2. string“208”,并从八进制解析为十进制
  3. 然后,这是相应的源代码:

    string

    public byte OctalToDecimal(int octalDigits) { byte decimalValue = 0; string octalString = string.Empty; // first, get a string representation of the integer number octalString = octalDigits.ToString(); // now, get the decimal value of the octal string decimalValue = Convert.ToByte(octalString, 8); // set the decimal-value as the label return decimalValue; } 时出现格式异常。我收到一条消息,指出octalDigits = 208的值中有其他字符。那为什么会这样?我所做的就是从octalString转换为int它非常短/简单,而不是我在那里附加任何东西。发生了什么事?

2 个答案:

答案 0 :(得分:0)

您应该知道八进制数的数字在0到7的范围内

这里有一些有用的链接

the octal representations of bytes range from 000 to 377?

http://www.asciitable.com/

答案 1 :(得分:0)

八进制数不能包含数字8,就像base-10表示不能包含“digit”10而二进制不能包含数字2。