このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

ラップアラウンド現象

/* wrap-around.c */

#include <stdio.h>


/* この動作をなにがあっても一生忘れないように、
 * 1日数回実行して、通算千回ほどは眺めること。
 */
main()
{
  signed char sc = 100;
  unsigned char uc = 100;

  int i;
  for (i = 0; i < 200; i++) {
    printf("%03d:%4d %4d\n", i, sc++, uc++);
  }
}
/* add.c */
#include <stdio.h>


/* 足し算してみよう 200 + 200 */

main()
{

  signed char sc = 200; /* コンパイラは何と言うだろう? */
  unsigned char uc = 200;

  signed char a = sc + uc;
  printf("%d + %d = %d\n", sc, uc, a);

  /* こういう中間での宣言ができない処理系もある */
  unsigned char b = sc + uc;
  printf("%d + %d = %d\n", sc, uc, b);
}