下邊給出由計算得出這些值的方法,其他數據類型同理
unsigned?
int
?GetUnsignedIntMax()
{
????
return
?
~
0
;
}
signed?
int
?GetSignedIntMax()
{
????
return
?(static_cast
<
unsigned?
int
>
(
~
0
))?
>>
?
1
;
}
signed?
int
?GetSignedIntMin()
{
????signed?
int
?i?
=
?
-
1
;
????
if
?(i?
&
?
1
)
????????
return
?
-
(?(static_cast
<
unsigned?
int
>
(
~
0
))?
>>
?
1
?)?
-
?
1
;
????
else
????????
return
?
-
(?(static_cast
<
unsigned?
int
>
(
~
0
))?
>>
?
1
?);
}
如果是前者,有這樣一個計算公式,~X + 1= -X,即一個數取反加一表示這個數所對應的負數


