javaの解説書に、「shortはビット幅がcharより狭いので、charからshortに変換できない」と書いてありました。
これは、正のbit幅が、charが16でshortが8だから、charよりshortのほうがbit幅が狭いから自動変換できないということですか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

「shortはビット幅がcharより狭いので、charからshortに変換できない」


これもいろいろ誤解を呼びそうな表現だなぁ

charは16bit符号なしで10進にして0~65535(2の16乗-1)の値を表現できる。
shortは16bit符号ありで10進にして-32768((-1*2の15乗)~32767(2の15乗-1)の値を表現できる。

32767~65535がshortでは表現できないので自動変換はできない、というのはあきらか。
「正のbit幅」なんてものは無い。あえて言えば、正の最大値から[15bit]と言える。8bitではない。
    • good
    • 0
この回答へのお礼

厳密で本質的な御回答ありがとうございます!

参考になります!

お礼日時:2011/04/08 20:16

もっとシンプルな話で


バケツの水はコップに入りきらない
ってことよ。

バケツ(char)に浮かんでいる浮き(データ)を
コップ(short)に入れる(変換)には
ざばっとひっくり返した(自動)だけじゃ入らない。
コップですくいにいったり、別の何かですくってあげたりしないといけないのよね。
    • good
    • 0
この回答へのお礼

シンプルな御回答ありがとうございます!
参考になります

お礼日時:2011/04/08 20:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング