爲什麼當我們想要將一個數字的ASCII值轉換爲一個整數時,我們需要這樣做:爲什麼數字字符的ASCII值等於值加'0'?
value - '0'
?
和周圍的其他方式,向整數轉換成ASCII碼,我們需要做的:
value + '0'
這是爲什麼?
爲什麼當我們想要將一個數字的ASCII值轉換爲一個整數時,我們需要這樣做:爲什麼數字字符的ASCII值等於值加'0'?
value - '0'
?
和周圍的其他方式,向整數轉換成ASCII碼,我們需要做的:
value + '0'
這是爲什麼?
因爲數字字符的整數值由C標準保證是連續的。
因此'1' - '0' == 1
,'2' - '0' == 2
等從中你可以推斷出你的公式確實有效。
圖片的標題說明:
這是正確的答案,ASCII標準是無關緊要的。 C標準本身保證數字「0」到「9」是相鄰的:這些是標準對任何形式保證的唯一字符。 – Lundin 2013-02-12 12:20:05
數字的ASCII值全部按順序排列。所以0
只是在ASCII代碼點48
處標記序列的開始,在位置57
處繼續到9
。
只是因爲ASCII碼爲standard定義的數字的編碼順序(48..57)。
由於ASCII數字是一個接一個地編碼的。
說'0' == 48
。然後'1' == 49
,'2' == 50
等等。
如果你仔細想想吧,'2' - '0' == 50 - 48 == 2
。同樣,2 + '0' == 2 + 48 == 50 == '2'
。
ASCII值是表中符號的位置編號。因此,您使用'0'符號位置號碼作爲數字符號的偏移量,向其添加整數數字值,您可以計算其位置號碼。
注意:兩者都假定所討論的整數在零(0)和九(9)之間。只有在這個範圍內纔是準確的。 – WhozCraig 2013-02-12 11:59:35