No.18241![]() |
int型、double型関数で疑問! 投稿者---yuppi(2004/11/19 10:37:28) |
||
intの最大に1を+したもの -2147483648, intの最小に1を−したもの 2147483647 このようにプログラムでint型変数でINT_MAXに1をたしたものとINT_MINに1をひいたものを出してみたのですが、どうしてint_maxに1を足したものが-2147483648となり、intの最小に1を−したものが2147483647になるのでしょうか??? またdouble型関数でDBL_MAX,DBL_MINと双方の積を出してみると, DBLmaxの二乗 inf, DBLminの二乗 0.000000e+00, 上記二つの積 4.000000e+00 となりましたがどうしてこうなるのでしょうか?? 考えてもわかりませでした・・・ |
No.18242![]() |
Re:int型、double型関数で疑問! 投稿者---επιστημη(2004/11/19 10:45:12) |
||
>intの最大に1を+したもの >-2147483648, >intの最小に1を−したもの >2147483647 >このようにプログラムでint型変数でINT_MAXに1をたしたものとINT_MINに1をひいたものを出してみたのですが、どうしてint_maxに1を足したものが-2147483648となり、intの最小に1を−したものが2147483647になるのでしょうか??? '2の補数'をご存知でしょうか? 4bitでの'2の補数'表現は: 0000 : 0 0001 : 1 0010 : 2 0011 : 3 0100 : 4 0101 : 5 0110 : 6 0111 : 7 1000 :-8 1001 :-7 1010 :-6 1011 :-5 1100 :-4 1101 :-3 1110 :-2 1111 :-1 4bitで表せる最大の数7に1を加えると-8になってますね。 |