【問題6】while文とfor文――繰り返し処理を理解しよう完全マスター! 組み込みC言語プログラミング(7)(3/3 ページ)

» 2014年07月18日 11時00分 公開
[横田一弘 埼玉県立新座総合技術高等学校 教諭,MONOist]
前のページへ 1|2|3       

整数とその有効範囲

 制御式のnを16ビットの符号なし整数とすると、nに格納できる数は、0から65535(215−1)で、問題6のプログラムを少し簡略化できます。そのプログラムが「twice2.c」で、制御式は単にnとなっています。

 「unsigned short int」とは、16ビットの符号なし整数という意味です。

 ここで、nは1、2、4、8……と、繰り返し2倍されていきますが、65536(216)にはなりません。16ビットの符号なし整数では、32768の次で0になってしまうのです。


#include <stdio.h>
 
int main(void)
{
        unsigned short int n;
 
        n = 1;
        while (n) {
                printf("%d\n", n);
                n *= 2;
        }
}
問題6の解答「twice2.c」

 C言語では8ビット、16ビット、32ビット(C99以降では64ビット)の整数を、使い分けることができます。組み込みCプログラムでは必修の知識です。

 特に、int型は曖昧(あいまい)で、コンパイラによって、32ビットであったり、16ビットであったりします。組み込みCプログラムでは、整数とその有効範囲に注意しましょう!

型名 大きさ 値の許容範囲
符号付き整数型 signed char(またはchar) 8ビット −128〜127
signed int(またはint) 32ビット −2147483648〜2147483647
(16ビット) (−32768〜32767)
signed short int(またはshort、short int) 16ビット −32768〜32767
signed long int(またはlong、long int) 32ビット −2147483648〜2147483647
符号なし整数型 unsigned char 8ビット 0〜255
unsigned int 32ビット 0〜4294967295
(16ビット) (0〜65535)
unsigned short int(またはunsigned short) 16ビット 0〜65535
unsigned long int(またはunsigned long) 32ビット 0〜4294967295
 C言語の整数型と値の許容範囲

問題7:整数を入力し2進数で表示

 それでは、次回の宿題です。

問題6:

整数を入力し、その値を2進数で表示するプログラムを作成してください。


解答と解説は次回



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.