1:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:43:11.909 ID:g2Ldo3BI0.net

符号なし右シフト意味分からなすぎ
11011001を11101100にしたら数増えるんじゃないの


スポンサードリンク
3:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:45:31.558 ID:TfDb1Rmwa.net

10進数のとき桁を右にずらしたらどうなった?
1200→120


4:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:47:28.769 ID:TfDb1Rmwa.net

あと符号なし右シフトは最上位ビットは0になるぞ
最下位ビットを最上位にずらすんじゃねー


6:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:48:49.078 ID:g2Ldo3BI0.net

極端な話11011001を右に7ずらしたら11111111になって一番大きい数になるじゃん
なんで違うの


7:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:49:21.891 ID:QkntnxqC0.net

ズレているのは>>1 のカツラだけだろ?


8:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:51:20.652 ID:g2Ldo3BI0.net

頼む助けて


9:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:51:46.811 ID:c4GHUUQS0.net

プログラムやるなら自分で調べて対応できないと一時的に教えてもらえてもまたすぐに詰むから諦めたほうがいいよ


10:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:53:07.471 ID:zzTBETNMM.net

何で1埋めるんだよ
新しいか


11:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:53:14.974 ID:QkntnxqC0.net

この程度も自分で調べて自己解決できないのならそれはもう知能の問題としか・・・


13:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:58:05.944 ID:g2Ldo3BI0.net

一番左端は符号だったのか!
じゃあ10000000を2ずらすと10100000ってことでおk?


17:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:00:18.601 ID:Dc5tYQPS0.net

なんで頑なに1が入ってくるのん・・・


14:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 12:58:50.162 ID:GOKQlTJ70.net

11011001を右に7つだったら00000001だろ>>1はアホか


22:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:10:29.099 ID:g2Ldo3BI0.net

今更だけど分からないの符号なしじゃなくて有りだった


23:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:12:40.971 ID:b8jW/NrU0.net

そもそも負数表現がどんなものかしってるのか?


24:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:14:47.331 ID:g2Ldo3BI0.net

>>23
全くの素人だからなんも分からん
ググったけど00100000が32で11100000が-32っていうのが分からん
1多い方が数大きいんじゃないの


25:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:15:49.982 ID:V0d4oJTE0.net

>>24
解散


26:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:16:41.248 ID:b8jW/NrU0.net

それは2の補数表現ってやつで、簡単に言うと全ビットを反転させて1を足している


28:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:19:16.770 ID:GOKQlTJ70.net

ビット表現もわからん奴がビット演算子に手を出すな


30:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:21:54.435 ID:g2Ldo3BI0.net

シフト演算子とかそれ以前の問題だったのか
ビット表現ってやつ勉強してくるわ
アホに付き合ってくれてありがとう


32:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:28:14.040 ID:XNqihR8r0.net

符号ビットが先頭のビットとして1バイトの数字を考えると

10進数 2+1=3
2進数 0010 + 0011 = 1

10進数 -2+1
2進数 1010 - 1001 = 1

とすると正の数と負の数で処理方法が違ってしまう


34:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:31:03.395 ID:XNqihR8r0.net

あ、少し違った

符号ビットが先頭のビットとして1バイトの数字を考えると

10進数 2+1=3
2進数 0010 + 0001 = 0011

10進数 -2+1=-1
2進数 1010 - 0001 = 1001

とすると正の数と負の数で処理方法が違ってしまう


36:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:32:48.873 ID:XNqihR8r0.net

あ、こっちのほうが分かりやすいだろうな
また訂正…

符号ビットが先頭のビットとして1バイトの数字を考えると

10進数 2+1=3
2進数 0010 + 0001 = 0011

10進数 2+(-1)=1
2進数 0010 + 1001 = 0001

とすると正の数と負の数で違う処理が必要になる


51:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:09:11.190 ID:g2Ldo3BI0.net

0と1反転した後1足したのが2の補数で引き算を足し算として処理するためにある?
>>48は10進数-1を2進数1110で表した後1足して1111にしてるのか


55:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:13:40.342 ID:XNqihR8r0.net

>>51
符号つき符号なしの両方があるだろ
符号なしなら先頭ビットも数字

符号なしと解釈すると

10進数 2+15=17
2進数 0010 + 1111 = (1)0001 先頭ビットは桁あふれ

負の数がある場合でも正の数の処理を変える必要がない


39:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 13:36:19.325 ID:XNqihR8r0.net

だから、負の数を
符号+直感的なビット表現
ではなく
符号+補数で表現する


54:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:12:35.073 ID:6eRgbKGN0.net

面倒だと思うけど、一回一回10進数に直すといいよ
そのほうが理解しやすい


58:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:19:09.726 ID:g2Ldo3BI0.net

符号付きと符号なしってどうやって見分けるの


61:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:21:44.439 ID:GOKQlTJ70.net

>>58
アセンブリレベルでは、どちらとして解釈したいか
高級言語レベルでは、unsigned 型かどうか
ビット表現としては何も変わらない


65:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:23:55.853 ID:g2Ldo3BI0.net

>>61
どっちでもそんなに変わらないってことか


66:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:25:36.119 ID:XNqihR8r0.net

>>65
どちらであるかをプロセッサは区別せずに処理できるような表現形式にしている
ということ


63:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:22:22.343 ID:Y1wQtEV70.net

お前シフト演算するの?
する時に覚えればいいよどうせ忘れるし


64:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:22:56.772 ID:b8jW/NrU0.net

シフト演算の使い道がいまだにわからない


67:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:27:13.963 ID:rVjCy9y70.net

>>64
処理速度とメモリ使用量が問われないなら気にしなくてもいいよ 計算手法変えれば実現可能だし
逆に言うと計算手法を変えれば処理速度とメモリ使用量が激減できるっつーことでもあるんだけど


68:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:28:32.412 ID:XNqihR8r0.net

今どきのコンパイラは勝手に最適化してくれるから
コーディングするときに意識する価値はないんだよな


70:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:29:35.023 ID:rVjCy9y70.net

よほど酷いコーディングしなければね
でもコンパイラの最適化の中身を調べるのかビット演算勉強するかならたぶん後者の方が楽だと思うwww


72:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:30:38.361 ID:XNqihR8r0.net

>>70
gcc -Oだけだぜ


73:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:33:26.409 ID:rVjCy9y70.net

>>72
ああいやなんつーのか、最適化手法そのもの的な
O3だと規約違反どうこうとかあるじゃん? あの辺詳しく追うと割とヘビーな気がしてる


71:以下、\(^o^)/でVIPがお送りします 2015/11/15(日) 14:30:29.052 ID:g2Ldo3BI0.net

だいたい分かったと思うありがとうお前ら
とりあえずif文も満足に使えないから>>63の言う通りに基本を覚えるわ


元スレ: http://viper.2ch.sc/test/read.cgi/news4vip/1447558991/