こんにちは私はここに新しいですので何かが間違っていると私に知らせてください、私は次回より良くしようとします。C++のアンダーフローとオーバーフロー
私はアンダーフローとオーバーフローがC++でどのように動作するかを理解しようとしています。変数の範囲を超えると、範囲の反対側から開始します。 。ショートの最小値は-32768であり、我々がしなければ-1をそこに新しい値がSHRT_MAX(32767) するかどうこうしてここに私のコードです:
通常#include<iostream.h>
#include<limits.h>
#include<conio.h>
int main (void)
{
int testpositive =INT_MIN ;
short testnegative = SHRT_MIN ;
cout<< SHRT_MIN<<"\n";
cout << testnegative-1<<"\n";
cout << INT_MIN << "\n";
cout << testpositive-1 << "\n";
cout<<testpositive-2;
getch();
return 0;
}
オペランドが最初に「int」に昇格されるので、オーバーフローはありません。あなたが望んでいるものを見るために、結果を短くキャストすることを検討してください。 –
Amazing.Itは動作し、今私は理解する。 – Knownow