■ このスレッドは過去ログ倉庫に格納されています
プログラミングC言語のキャストに詳しい人きてください
- 1 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:03:42.85 ID:8MxExrkj0.net
- float FLOAT=400.0F;
unsigned short SHORT;
CHAR = (unsigned char)FLOAT/3;
これでCHARを出力すると133になるかと思いきや48なんだがなにがいけないのだろうか・・・
- 2 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:04:55.43 ID:P02N/ER3p.net
- ASCIIコードでggrks
- 3 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:05:49.53 ID:8MxExrkj0.net
- >>2
対策を教えていただけんだろうか
- 4 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:07:12.81 ID:Mjnqozdu0.net
- 演算子の優先順位の問題だろ
キャストのような単項演算子は/より優先順位高いよ
- 5 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:11:30.02 ID:8MxExrkj0.net
- >>4
原理はわかった
unsigned shortは255以上受付られなくて
先に400を受け入れようとして桁あふれが生じて/3して48になってるのか
でもどうやれば133になるようにできる?
- 6 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:12:19.97 ID:0uSTJae80.net
- キャストするなよ
- 7 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:12:30.65 ID:8MxExrkj0.net
- 適当にCHAR = (unsigned char)(FLOAT/3);
にしたら133になったわ・・・
- 8 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:13:21.39 ID:aNo9CTh60.net
- 問題とは全く関係ないけど変数名が全部大文字はやめろ
- 9 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:13:18.57 ID:8MxExrkj0.net
- >>6
キャストしないでも133になれたわ・・・
- 10 :以下、\(^o^)/でVIPがお送りします:2015/02/01(日) 02:16:12.78 ID:8MxExrkj0.net
- >>8
お試しコードなもんで・・・
総レス数 10
2 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★