Как сделать двоичный сдвиг влево в целочисленном значении с помощью Ruby?Рубиновый двоичный сдвиг влево
Я пытаюсь сделать сдвиг влево бинарную операцию, но я получаю странный символ вместо переезда ..
Я думаю, что он должен выполнять, как это: (Java)
b = (b >> 2); // 0011 1111
b = (b < < 2); // 1111 1100
Я делаю это в рубине:
currentRed = ChunkyPNG::Color.r(image[x,y])
currentGreen = ChunkyPNG::Color.g(image[x,y])
currentBlue = ChunkyPNG::Color.b(image[x,y])
binRed = currentRed.to_s.unpack("b*")[0]
binGreen = currentGreen.to_s.unpack("b*")[0]
binBlue = currentBlue.to_s.unpack("b*")[0]
puts "original"
puts "r #{binRed}"
puts "g #{binGreen}"
puts "b #{binBlue}"
puts "------"
binRed = binRed << 2
binGreen = binGreen << 2
binBlue = binBlue << 2
puts "new"
puts "r #{binRed}"
puts "g #{binGreen}"
puts "b #{binBlue}"
и получить его:
спасибо заранее ..
В чем вопрос? – sawa
Как преобразовать значения rgb в двоичную двоичную форму? Я попытался преобразовать значения rgb в двоичную форму следующим образом: binRed = currentRed.to_s (2) \t binGreen = currentGreen.to_s (2) \t binBlue = currentBlue.to_s (2), но я получил тот же результат, что и на печатном экране выше .. потому что они все еще строка .. – Alexandre