:Ruby言語を使用してバイナリの10進数への変換に数字「8」が含まれるのはなぜですか?私はCoderbyte上で次のコードの挑戦のためのソリューションで探しています
、機能
BinaryReversal(str)
はそのバイナリ表現をとり、正の整数になりますこれは、渡されるstr
パラメータを取る必要があり、そのビット列を逆にして、最後に10進形式の新しい逆文字列を返します。たとえば、str
が"47"
の場合、この整数のバイナリバージョンは00101111
です。あなたのプログラムはこのバイナリ文字列を逆にして、11110100
とし、最後にこの文字列の小数点のバージョンを返します。これは244
です。
ソリューションです:バイナリは、それは長さがに等しいですまで0
sがその上に追加持っている必要がありますなぜ私は理解していない
def BinaryReversal(str, dig = 8)
binary = str.to_i.to_s(2).reverse
dig += 8 until dig >= binary.length
binary += '0' until binary.length == dig
binary.to_i(2)
end
。実際、私はの役割を全く理解していません。
Rubyについてはわかりませんが、8桁の長さに値を左パディングするために必要なゼロを計算していると思います(たとえば、 '10001'から' 00010001'に反転された値が正しい( '10001000')。 –