• ベストアンサー

自動変換について質問

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

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.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ではない。

wantanton
質問者

お礼

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

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

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

wantanton
質問者

お礼

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

関連するQ&A