No.1ベストアンサー
- 回答日時:
それは、具体的にどのCPU向けのなんというCコンパイラの話でしょうか?
また
#include <stdio.h>
#include <limits.h>
int main(){
int s = sizeof(unsigned int);
printf("sizeof(unsigned int)=%d\n",s);
printf("UINT_MAX=%u\n",UINT_MAX);
return 0;
}
このプログラムを実行したらどんな出力になりますか?
(標準ライブラリが使えるコンパイラで、printfでの出力ができたとして)
intの大きさは、対象CPUやコンパイラの種類によって違います。
例えば、Windows PC用のVisual C++だと intは32ビットで、次のように出力されるはずです。
sizeof(unsigned int)=4
UINT_MAX=4294967295
> unsigned int は6万しか取れなくて
「6万」という「中途半端」な値ということは、まずありません。
普通は内部では二進数が使われているので、intが16ビットのコンパイラだと 65535が最大になります。
このとき、上記のプログラムでは 「sizeof(unsigned int)=2」「UINT_MAX=65535」 と出力されると思います。
※ sizeof(unsigned int)= の方は違う値になるケースもありますが。
「6万しか取れなくて」等と言われると、この情報自体が間違っているのでは?と疑ってしまいます。
> unsigned int に0xffffffを代入
まず。
整数型間では、「暗黙の型変換」が行われます。
unsigned int u; とした場合、
u=0xffffff ;
は
u=(unsigned int)0xffffff ;
と同じ意味になります。
大きな型から小さな型(int→char等)の場合、上位ビットの足りない分は無視されて下位だけが残ります。
例えば、char c; の場合 c=0x1234; は、下位の 0x34 だけがcに代入されます。(charが8ビットの場合)
intが16ビットというのが正しければ、 「u=0xffffff ;」と書くことは可能ですが、実際には上位ビットが捨てられて「u=0xffff ;」となります。
intが16ビットというのが間違っていて、24ビット以上(UMAX_INTが16777215以上)ならば、0xffffff が正しく代入できます。
この回答へのお礼
お礼日時:2016/01/07 07:21
ありがとうございます(_ _;)
charは1バイト
intは2バイトと勘違いしていました
unsignedintは符号なしの4バイトですね
感謝します。
関数電卓で2^32をやってみた結果4294967296になりました。
ネットで調べると4294967295でした
1誤差がありましたどうしてでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# プログラミングのペーパーテスト 実行結果の表示を答えてください #include <stdio.h> 2 2022/07/09 16:14
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語で簡単なパックマンゲーム...
-
ヒストグラム均等化処理プログラム
-
C言語
-
画像の拡大・縮小
-
分数の足し算をさせるプログラ...
-
c++ TCHARで文字化け
-
迷路を脱出する経路探索プログ...
-
直線補間について
-
関数とビット列
-
カードシャッフルのブログラム...
-
再起を使って迷路を解くプログ...
-
再起呼び出しの回数をカウント...
-
ヌメロンのプログラム
-
課題;素因数分解
-
コマンドプロンプトのウィンド...
-
2の補数を計算するプログラム
-
C言語で%を使わない余りの出し方
-
whileとifを使い偶数を出すには
-
C言語 4) 整数 a, b, c を入力...
-
fgetsなどのときのstdinのバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報