ET(地球外生命)についての考察

太陽系外の惑星にCO2 ハッブル望遠鏡で初確認
 【ワシントン9日共同】米航空宇宙局(NASA)は9日、ハッブル宇宙望遠鏡による観測で、太陽系外にある惑星の大気に二酸化炭素(CO2)が含まれているのを初めて確認したと発表した。
 この惑星は高温すぎて生命は存在できないが、生命活動とも関係するCO2を検出できたことは将来、地球外生命を確認するための重要な一歩だとしている。
 NASAによると、こぎつね座の方向にあり、地球から63光年離れた恒星を回る木星ほどの大きさの惑星「HD189733b」を観測。恒星の後ろに隠れる前後の光を比較して惑星の反射光の波長を解析する方法で、惑星大気にCO2と一酸化炭素が含まれるのを確認した。
 研究チームは「ハッブルは宇宙の果てを見通すのが主任務だが、太陽系外の惑星の組成を調べる有力な手段になりつつある」と指摘している。

http://www.47news.jp/CN/200812/CN2008121001000160.html

                                                                                                  • -

ちょっとET(地球外生命)について考察をしてみた。
SETI(地球外文明探査)の産みの父であるドレイクは、この銀河系の中に我々が交信しうる知的文明がどれだけ存在するのかを算出する一つの方程式を考え出した。
 N=R*×fp×ne×fl×fi×fc×L
 R.....銀河系内で毎年誕生する恒星の数
 fp....その中で惑星をもつ恒星の割合
 ne....その中で生命が発生するのに適した条件をもつ惑星の数
 fl....その惑星で生命が発生し進化する割合
 fi....その生命が知的生命に進化する割合
 fc....その知的生命が他の星系への通信手段を持つ文明に発展する割合
 L.....その文明の寿命
この計算式のミソはRのようだ。
銀河系内で毎年誕生する恒星の数Rは1〜10らしい。
これらを全部掛けていくから最悪10万個の銀河系にたった1つの文明しか存在しないことになる。
見つかった時のETはノーベル賞受賞者南部陽一郎さんが予言した反物質のじじぃだったりして (^^;
話変わって
C言語で簡易HEX(16進)ダンプのプログラムを作ってみた。
改行コードはCR+LFとして処理しています。
C言語コンパイラーはボーランドCを使っています。(無料版)

                                          • -

読み込むファイル (perldata.txt)
# perl filelist.pl
my @files = glob('obaka/*.*');
foreach my $file (@files) {
print "$file\n";
}

                                          • -

c言語 (hexconv.c)

                                          • -

//bcc32 hexconv.c
#include
#include
#include
#include
int main(int argc, char *argv[])
{
  FILE *fp;
  int i, len;
  char c[32];
  unsigned char s[32], s2[32];
  unsigned char hx[4096];
  char filename[128];
  /*strcpy(filename = "perldata.txt");*/
  memset(c, 0x00, sizeof(c));
  memset(s, 0x00, sizeof(s));
  memset(hx, 0x00, sizeof(hx));
  strcpy(s2, " ");
  fp = fopen(argv[1], "r");
  if (argc != 2 || fp == NULL) {
    printf("ファイル%sがオープンできません.\n", argv[1]);
    return(1);
  }
  i = 0;
  while *1 != EOF){
    sprintf(s, "%02X", c[0]);
    if(strncmp(s, "FF", 2) == 0){
      continue;
    }
    i++;
    if(c[0] != '\n'){
      strcat(hx, s);
      strcat(s2, c);
    }else{
      strcat(hx, "0D");
      strcat(s2, ".");
    }
    if((i % 16) == 0){
      strcat(hx, " ");
      strcat(hx, s2);
      strcat(hx, "\n");
      strcpy(s2, " ");
    }
    if(c[0] == '\n'){
      strcat(hx,"0A");
      strcat(s2, ".");
      i++;
      if((i % 16) == 0){
        strcat(hx, " ");
        strcat(hx, s2);
        strcat(hx, "\n");
        strcpy(s2, " ");
      }
    }
  }
  len = 16 - strlen(s2)+2;
  memset(&hx[strlen(hx)], ' ', len*2-1);
  strcat(hx, s2);
  printf("%s\n", hx);
  fclose(fp);
  return(0);
}

                                          • -

実行結果
C:\borland\test>hexconv perldata.txt
23207065726C2066696C656C6973742E # perl filelist.
706C0D0A6D79204066696C6573203D20 pl..my @files =
676C6F6228276F62616B612F2A2E2A27 glob('obaka/*.*'
293B0D0A666F7265616368206D792024 );..foreach my $
66696C6520284066696C657329207B0D file (@files) {.
0A20207072696E7420222466696C655C . print "$file\
6E223B0D0A7D0D0A            n";..}..

*1:c[0] = (char)fgetc(fp