2008年6月9日月曜日

第7章 基本型

昨日は植田ジャパンのお祝いにかこつけて飲んだので、調子悪し。。。


  • 7-1 基本型と数

    • えっと、さすがに基数は知っていたので、もう一節。

  • 7-2 整数型と文字型

    • 自分の環境のlimits.h該当部分。

      #define SCHAR_MAX 127 /* min value for a signed char */
      #define SCHAR_MIN (-128) /* max value for a signed char */

      #define UCHAR_MAX 255 /* max value for an unsigned char */
      #define CHAR_MAX 127 /* max value for a char */
      #define CHAR_MIN (-128) /* min value for a char */

      #define USHRT_MAX 65535 /* max value for an unsigned short */
      #define SHRT_MAX 32767 /* max value for a short */
      #define SHRT_MIN (-32768) /* min value for a short */

      #define UINT_MAX 0xffffffff /* max value for an unsigned int */
      #define INT_MAX 2147483647 /* max value for an int */
      #define INT_MIN (-2147483647-1) /* min value for an int */

      #ifdef __LP64__
      #define ULONG_MAX 0xffffffffffffffffUL /* max unsigned long */
      #define LONG_MAX 0x7fffffffffffffffL /* max signed long */
      #define LONG_MIN (-0x7fffffffffffffffL-1) /* min signed long */
      #else /* !__LP64__ */
      #define ULONG_MAX 0xffffffffUL /* max unsigned long */
      #define LONG_MAX 2147483647L /* max signed long */
      #define LONG_MIN (-2147483647L-1) /* min signed long */
      #endif /* __LP64__ */

      #define ULLONG_MAX 0xffffffffffffffffULL /* max unsigned long long */
      #define LLONG_MAX 0x7fffffffffffffffLL /* max signed long long */
      #define LLONG_MIN (-0x7fffffffffffffffLL-1) /* min signed long long */

    • longはwordなのかな。
    • 整数定数が型をもつ、ということは、Cでは識別子と値の双方が型情報を保持している、ということかな?
    • 補数
    • 厳しくいうと、例えば1を0001としたときに、000まで1の補数として反転するのは、補数の考え方から外れているような。
    • 0001の1の補数は、数学的には0000じゃないか。そして、2の補数は0001。
    • 計算機の内部で負数の表現に利用しているのは、補数の「計算手順」であって、0001の1の補数を1110と呼ぶのは奇妙。
    • まあ、やりたいことはわかるんですが。



演習に結構時間がかかった。ここまで。

0 件のコメント: