Binary banner
BoingBoing has a story of a store that sells t-shirts with offensive messages spelled out in binary. I think its a nice way to generate email signature or web-page banner where you can really say offensive stuff and get away with it. I wrote the following code in Ruby which takes any word and spits out the binary ASCII representation.
ARGV.each do |str|
def PrintBin(ch)
mask = 0x80
while mask != 0
print (if (ch & mask) == 0 then "0" else "1" end)
mask >>= 1
end
end
str.each_byte do |ch|
PrintBin ch
end
print "\n"
end
My Ruby is completely rusted so it took me some time to get this done. Later I tried writing the same code in C#. It took me over 3 times the LOC it took me to do it up in Ruby. I'm sure a experinced Ruby programmer can make this even more simpler and concise.
Since this is my official blog, I won't post anything offensive here. But on my personal web-site no one stops me :)
C:\MyStuff\Code\Ruby>BinaryBan.rb Krikkit
01001011011100100110100101101011011010110110100101110100
Update
As I thought, I'm far more rusty in Ruby that I'd like to imagine :) Daniele Alessandri got it in way less number of lines via the printf (%b) (see comment below). His code is as follows.
ARGV.each do |str|
str.each_byte { |b| printf("%08b", b) }
puts
end