型はバイト幅だけじゃなくてどうやって二進法でエンコードするのかも規定するよね、という話をしていて確認のためのコードを書いた。手抜きをして方法Bでやってもいいよね、と思ったら予想外の結果が出たので悩んでいる。→解決 #include<stdio.h> int main(){ int i; float f = 1.0; /* 素直な方法 A (追記:やっちゃダメ!)*/ i = *(int*)(&f); printf("A %d\n", i); /* 手抜きな方法 B */ printf("B %d\n", f); } Rubyでこんな感じに文字列化して、と。 irb> def pp(x) x.to_s(2).rjust(32, "0") end irb> pp 1065353216 => "00111111100000000000000000000000" 0.500000の時 A 1056