バリケンのRuby日記 RSSフィード

2007-10-11

[] 整数配列で文字列を作ってみる、の解説  整数の配列で文字列を作ってみる、の解説 - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  整数の配列で文字列を作ってみる、の解説 - バリケンのRuby日記  整数の配列で文字列を作ってみる、の解説 - バリケンのRuby日記 のブックマークコメント

このあいだの日記だとあんまりにあんまりなので、ちょっと解説。

#include <stdio.h>

int main(void) {
  int str[] = { 1819043144, 1461726319, 1684828783, 33 };
  puts(&str);
  return 0;
}

の出力がなぜ

Hello, World!

になるのかというと、

$ irb
irb(main):001:0> str = "Hello, World!"
=> "Hello, World!"
irb(main):002:0> str.unpack('h*')[0].concat('00' * ((4 - (str.size % 4)) % 4)).scan(/.{8}/).map{|s| s.reverse.hex }
=> [1819043144, 1461726319, 1684828783, 33]
irb(main):003:0> exit
$

だからだよ(この説明もあんまりだなあ)。

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20071011