私はmac osxのライオン(xcode4/clangの下で、gcc4.2で再現可能ですが)に取り組んで、奇妙な問題に直面しています。osx lionでは127のunsigned charに制限されていますか?
unsigned char変数には127以上の値を割り当てることはできないようです。だから、私は
v = (unsigned char) 156;
または、単に
std::cout << (unsigned char) 231 << std::endl;
を割り当てるときに私のプログラムは、任意の出力を生成しません。
私はこのコード
std::cout << "Unsigned chars range up to " << UCHAR_MAX << std::endl;
を実行すると、私は次のような出力が得られます。
符号なし文字は、私がこのような何かを実行すると、プログラムは出力を生成し、しかし255
までの範囲毎回何らかの異なる任意の値(例えば、c = 114、c = 252など)に変換する。 のstd :: COUT < < "C =" < < 2 * C < <のstd :: ENDL(; < CHAR_MAX C、C++ unsigned char型のC = 0)ため 。 UCHAR_MAXにCHAR_MAXを変更
は、プログラムが再び出力せずに終了:(
事前
あなたの理屈は貧弱です。コンソールではなく、デバッガを使用してデバッグします。 'v =(unsigned char)156;を試してください。 std :: cout <<(符号なし)v << '\ n'; '。 – ildjarn
ありがとう!私はgdbの下で実行していた。 ( 'unsigned int')に型キャストすると助けになりました! –