- 392 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 02:01:37 ]
- int a = -1;
unsigned int b = a; こうするとbは標準Cならどんな環境でもUINT_MAXになるんですが unsigned int b = (unsigned int)a; こうした場合って、このキャストは (1)aのビットパターンを無理やり unsigned int として解釈するのか (C++のreinterpret_cast) →負数の表現が2の補数なら UINT_MAX 1の補数なら UINT_MAX-1 絶対値と符号フラグなら…いくつだ? (2)aをunsigned int に変換するのか (C++のstatic_cast) →環境によらず UINT_MAX どっちでしょうか? あいにく手元には負数の表現方法が2の補数の環境しかないので、確かめられません
|

|