- ベストアンサー
プログラム
harutovxの回答
言語が書いていないので、C言語と仮定すると >> はビットシフト演算子 > は比較演算子 つまり、0x32と1を比較して0x32の方が大きい、 この条件が成り立つ場合は「真」すなわち1が、成り立たない場合は「偽」すなわち0となります。 a=0x32>1 の場合は常にaには1が入ります。
関連するQ&A
- シフト演算の問題です
2進数の値を左へn桁移動すると、もとの値の2^n倍になる。 例えば、左へ2ビット桁移動するともとの値の4倍となる。 この性質を利用して、左へ桁移動した値を複数加えることで行う乗算を考える。 なお、ここでは、桁移動して空いたビットには0が入るものとし、負数は考えないものとする。 左へ桁移動する関数として、"SHIFT(値、桁数)"を使う。 この関数は、引数の"値"を"桁数"ビット左へ桁移動した結果を返す。 もとの値をaとし、これを10倍するには、2倍した値と8倍した値を加えればよいので、次のような式になる。 SHIFT(a,1)+SHIFT(a,3) また別の考え方で10倍しようとすると、次のような式になる。 SHIFT((SHIFT(a,x)+a),y) 答えはx=2 y=1 です。 解説をお願いします。
- ベストアンサー
- その他(受験・進学)
- プログラムの作成
講義で与えられたテキストを見ながら作ろうとしたのですが実行できません。お願いします。 プログラムはCで作成すること。 与えられた実数a,bに対し、次の定積分 S=∫xのa乗(1-x)のb乗dx (積分範囲は0~1) の値を台形法により近似的に求めるプログラムを作成してください。 ただし、実数a,b、区間の分割数は実行時にキーボードから入力できるように
- 締切済み
- その他(プログラミング・開発)
- ビットについて基本情報技術者試験でわからない問題があります
ある16ビットのデータを左に1ビットけた移動すると、あふれが生じ、得られた値は16進数で579Aとなった。元の値を16進数で表したものはどれか。 ア 2BCD イ 2F34 ウ ABCD エ AF34 答え ウ 解説には 579A を2進数に直し、右に1ビットけた移動、あふれが生じた分の先頭ビットを1とすると・・ とありますが、なぜ、勝手に先頭ビットを1としていいのかわかりません。
- ベストアンサー
- その他([技術者向] コンピューター)
- 19年秋の問2について
問02 2進数を3倍したもの 非負の2進数 b1b2…bn を3倍したものはどれか。 という問題で、2倍して元の値を足せば3倍というのは わかるのですが、 b1b2…bnを左に1ビットシフトすると b1b2…bn0というのが よくわかりません。 bn0ってなんなんでしょうか?? もっと言ってしまうと、b1b2…bnという表現がそもそもよくわかりません。 左に1ビットシフト → 2倍 左に2ビットシフト → 4倍 左に3ビットシフト → 8倍 左に4ビットシフト → 16倍 右に1ビットシフト → 1/2 右に2ビットシフト → 1/4 右に3ビットシフト → 1/8 右に4ビットシフト → 1/16 というのは理解してるつもりなんですが、こういう形になると わけがわからないってことは本質的に理解できてないってことなんでしょうか??
- 締切済み
- 情報処理技術者
- 算術シフトしたら、あれ?
16進数ので各4ビット(4桁)で2進数で算術シフトしますが、符号部はぬいて元の16進数に戻すのですか?でもそうすると元の数より大幅に減ってしまいますよね。例題の 例題・A4A6(16)を2ビット算術シフトする。 A4A6(16)=1010 0010 1010 0110 (2) ・左へ2ビットシフトする。 1000 1010 1001 1000(2)=A98(16) ・右へ2ビットシフトする。 1110 1000 1010 1001(2)=8A9(16) というように、符号部ぬかしたら増えるはずが減ったり、減るはずが増えたりと。なんか変ですよね。 ちなみに符号部すべて入れて考えたら、 左へ算術シフト 8A98(16) 右へ算術シフト E8A9(16) 増えるはずが減って、減るはずが増えるというあべこべになってしまいます。 超基本的ことなんですが、なぜか本に記載されていなかったので書きました。ご協力ください。
- ベストアンサー
- その他([技術者向] コンピューター)
- 3つほどプログラムをおしえてください。
(1)100までの整数をいくつか入力し、10刻みでの個数を表示し、負の数が入力されると整数の入力を終わるプログラムです。各範囲の個数は配列に格納する。 実行結果 65 30 21 95 5 -1 0--- 9 : 1 10--- 19 : 0 20--- 29 : 1 30--- 39 : 1 40--- 49 : 0 50--- 59 : 0 60--- 69 : 1 70--- 79 : 0 80--- 89 : 0 90---100 : 1 (2)数字の文字列を入力し、その文字列に含まれる各数字(文字)'0','1',~'9'の個数を表示するプログラムの作成。 実行結果 1231234567 0: 0 1: 2 2: 2 3: 2 4: 1 5: 1 6: 1 7: 1 8: 0 9: 0 (3) 変数xは、0~1までの0.01刻みの値(101個)を取るとする。このとき、2次関数 f(x)=3x^2+2x+1の値が2.0<f(x)<3.0となるxの値をの個数を求めるプログラムの作成。ただし、xを引数としf(x)の値を返す関数を作成して、それを使用する。 実行結果 number=21 やってるうちにわけがわからなくなってしまいます。どなたかよろしくおねがいします。
- ベストアンサー
- C・C++・C#
- 循環シフト。
(ABCD)16 を右へ3ビットシフトした結果を16進数で表した場合の答えは BCDAだと間違っているのでしょうか? 循環シフトってはみ出た部分を前にもってくるのでこれであってるはずなのですが。
- 締切済み
- その他([技術者向] コンピューター)
- (1)~(3)に文法、解釈に間違いはございますか?
(1)~(3)に文法、解釈に間違いはございますか? プログラミングを初心者です。 (1)~(3)に文法、解釈に間違いはございますか? よろしくお願い致します。 (1) uchar a; uint b; a=(uchar)b; ・bの内容をuchar型に変更(上位8ビットをカット)して、その値をaに代入する。 (2) uchar a; uint b; a=(uchar)b>>8; ・bの内容をuchar型に変更(上位8ビットをカット)して、その値を右へ8ビットシフトして、その後の値をaに代入する。 (3) uchar a; uint b; a=(uchar)(b>>8); ・bの内容を右へ8ビットシフトして、その値をuchar型に変更して、その後の値をaに代入する。
- ベストアンサー
- C・C++・C#
- 数学教えてください。
二次関数f(x)=2x^2-4x+7がある。 (1)f(0)=f(a)であるとき、正の定数aの値を求めよ。 答え 2 (2)aは(1)で求めた値より大きいとする。0<=x<=aにおいて、巻 数f(x)の最大値が10であるとき、定数aの値を求めよ。 答え 2+√10/2 答えは合ってますか?
- ベストアンサー
- 数学・算数
お礼
ありがとうごさいました。おかげでスッキリしました。