>なぜエ? ... 18(10)
> binary[] ← \u0026quot;10010\u0026quot;
> result ← 0
> for(iを1からlengthまで1ずつ増加)
> result ← result * 2 + binary[i] - 0x30
> endfor
⇒
(1)「文字列]の概念を除くと 10010 とは2進数の値そのもの
(2) (result*2)とは現在の値を左シフトと同義
(3)「binaryの文字列の文字」とはMSB側から取出す。
※MSB側から1bitずつ取出し、左シフトを繰返す。
演算例:
result ← 0
result * 2 ... 0
binary[i] - 0x30 ... 1
result ← 0 + 1
result * 2 ... 2
binary[i] - 0x30 ... 0
result ← 2 + 0
※ 1*2*2*2*2 + 1*2 = 18
━