[過去ログ] C言語なら俺に聞け 163 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
599: 警備員[Lv.4][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)12:52 ID:WswbN0Go0(4/10) AAS
条件分岐とかループ処理のやつは解けるやつもあれば、解けないやつがあっても解説見れば次は出来ますが、文字列関係になると頭の中が[?]になるんです。
600: (ササクッテロ Spa3-Z3xl) 02/09(日)13:07 ID:ql26y8Y/p(1) AAS
応用力…今の学校教育じゃ養われない能力が大切
601: 警備員[Lv.5][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)13:16 ID:WswbN0Go0(5/10) AAS
応用力ですか、。なんか、数学と同じ感じですね。基礎ができたと思っても応用ができないみたいな。
ちなみに、応用力ってどの様に勉強すれば身につくものなんですか?
602(2): (ワッチョイ 1e63-euVe) 02/09(日)13:46 ID:k5BYzD4Y0(1/2) AAS
30桁くらいの2つの整数値を筆算で加算するときの手順をイメージして
それをプログラム化してみれば良い
そんなに難しくはないだろう
603: (ワッチョイ 465c-6Hi7) 02/09(日)13:46 ID:KfUn2qZi0(1/2) AAS
>>594
そのサイトクソだよ
604(1): 警備員[Lv.6][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)14:22 ID:WswbN0Go0(6/10) AAS
>>602
筆算のイメージはあるのですが、整数型でやろうとしたらエラーになって、実数型でやろうとしてもエラーになるので、なんでだろーって思って解説ん見てみたら、[文字列型にしましょう]って書いてあったので[?]ってなってしまうのです。
605: 警備員[Lv.6][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)14:25 ID:WswbN0Go0(7/10) AAS
>>602
筆算のイメージもそのサイトの解説みてから、そうなんだと思ったんですけど、どうも初見だとイメージが沸かないんですよ。
606(1): (ワッチョイ 1e63-euVe) 02/09(日)14:27 ID:k5BYzD4Y0(2/2) AAS
イメージ湧かないなら、手を動かそう
そこに答えがあるよ
607: 警備員[Lv.6][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)14:55 ID:WswbN0Go0(8/10) AAS
>>606
なるほど、頭で考えるより、手で考えた方が良いのですか。
実践してみます。ありがとうございます!
608: (ワッチョイ de76-/Fy3) 02/09(日)17:03 ID:TclGPY+C0(1/5) AAS
整数32bitでも64bitでも最大値は決まっている
でも大きい整数を表すのに64bit整数1つだけ使うとは決まっていない
桁溢れをプログラム的に検出して
溢れた分を別の64bit整数に記録すれば大きな整数を扱える
64bit+64bit+....
で整数を表す感じ
609: (ワッチョイ de76-/Fy3) 02/09(日)17:04 ID:TclGPY+C0(2/5) AAS
文字列って1Byte整数の配列でしょ?無駄が多いよ
8Byte整数の組合せを上で挙げたけど、8Byte整数の配列でも当然できる
610(2): (ワッチョイ 0f5f-Z3xl) 02/09(日)17:14 ID:sBzel75s0(2/4) AAS
無駄を省くより可読性の方が大切
8bit時代のファミコンじゃ無いんだから
そんなキリキリ詰め込んだってわけわからん事になるだけ
611: (ワッチョイ 465c-6Hi7) 02/09(日)17:36 ID:KfUn2qZi0(2/2) AAS
>>610
的外れ
いきるな初心者
612: (ワッチョイ 0f5f-Z3xl) 02/09(日)18:12 ID:sBzel75s0(3/4) AAS
桁上がりを別に判定しなきゃならないんだから扱えるギリギリの桁で計算するのはバカだろw
アセンブラなら桁あふれフラグ見て簡単に処理出来るだろうが、Cだと無理
613: (ブーイモ MMaa-6Hi7) 02/09(日)18:46 ID:fEimQ790M(1/3) AAS
>>604
どこのサイト?
それ書いてるやつ多分バカだぞ
参考にすんな
614: (ブーイモ MMaa-6Hi7) 02/09(日)18:57 ID:fEimQ790M(2/3) AAS
>>610
charでやるのは馬鹿だがアルゴリズムは同じなんだから可読性は変わらない
メモリもほぼ変わらない
615(1): (ワッチョイ de76-/Fy3) 02/09(日)19:00 ID:TclGPY+C0(3/5) AAS
整数値それぞれ (左右どっちだっけ)シフト1bitやって(1/2の値)足したのが最大値の半分超えたら桁溢れ
上位桁に溢れるだけ加算
Cでもできるに決まっているじゃん これだけだよ
616: (ワッチョイ de76-/Fy3) 02/09(日)19:09 ID:TclGPY+C0(4/5) AAS
文字列って溢れの分が1-9まであって大変そう
バイナリなら1bitだけでしょ
617: 警備員[Lv.8][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)19:15 ID:WswbN0Go0(9/10) AAS
>>615
それってシフト演算の話ですか?(違ってたらごめんなさい。)
私、シフト演算は苦手なんですよね。
ただシフトするだけなら参考書とサイトみたらできますけど、ノールックでさらに四則演算になるとできないんですよ。
618(2): (ワッチョイ de76-/Fy3) 02/09(日)19:34 ID:TclGPY+C0(5/5) AAS
考えたらシフトは無駄だった
64bit整数のうち63bit整数で考えて最上位ビットを溢れ判定に使えばよいだけ
あんまり書くと宿題の手伝いになってそう
619: (ブーイモ MMaa-6Hi7) 02/09(日)19:44 ID:fEimQ790M(3/3) AAS
>>618
足したあとの結果から判定する
教えるなら定石を教えろや
620: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/09(日)19:51 ID:vUYqd53r0(1) AAS
二進化十進はたとえば表示の処理なんかは簡単になるので無駄なわけではない。
621: (ワッチョイ 0f5f-Z3xl) 02/09(日)20:03 ID:sBzel75s0(4/4) AAS
いまどき文字も16bit時代にケチケチすんなw
622: 警備員[Lv.8][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)22:27 ID:WswbN0Go0(10/10) AAS
>>618
なるほどですね。因みにこれは宿題ではなく、自主学習のやつです。とあるサイトの解説がよくわからなくてこの板の方々に質問させていただきました。
ありがとうございます。
623(1): (ワッチョイ de76-/Fy3) 02/10(月)07:27 ID:ZpC+jsE10(1) AAS
あと実数でやったと出たけど要注意
double verybignum;
verybignum += 1.0;
で1.0は桁を合わせると0に消えて足されない場合がある
624: (アウアウエー Sa82-R6kM) 02/10(月)11:48 ID:Z13/KCo3a(1) AAS
吊りならともかく本物の初心者なら文字コードを知らないってこともあるだろうな
多倍長整数をバイト列(1桁0-255)じゃなくて文字列(1桁0-9)で表すのは無駄が多いがアルゴリズムは同じはず
それでもピンと来ないなら先に文字コードについて理解するべき
625: 警備員[Lv.2][新芽] (ワッチョイ 278e-tGgj) 02/10(月)13:13 ID:BwJhqJpr0(1) AAS
IntelのアセンブラならBCDを扱う命令があったと思うけど、Cでやるなら文字に代入する時点で &= 0x0F、計算して出力する前に |= 0x30(でいいんだっけ?)かなー
626(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-XAIF) 02/10(月)13:19 ID:cWC6BpGk0(1/3) AAS
やや強引だがアドレスとして同じでも比較すると等しくないという結果になる例を作ってみた。
外部リンク:wandbox.org
概念的にはポインタはアドレスというのでも間違いではないけど実際には言語のルールを把握していないと引っかかることもある。
ホスト規制でしばらく書き込めなかったので遅レスですまぬ。
627(4): (ワッチョイ 6a56-WFrT) 02/10(月)16:46 ID:xKid5uSQ0(1) AAS
よく分からないがこうなる理由が分からないという意味の質問かな?
まあそうだとして、C言語では異なるオブジェクトへのポインタを比較出来ないってルールがある
それが行われているので、未定義の動作といってこのプログラムではコンパイラがどんな事をしてもいいことになってる
そのどんな事の中にはnot equalを表示するという動作も含まれているので、たまたまそうなったんでしょう
初心者がよくやるFAQレベルのミスなので、ポインタとオブジェクトを理解する意味でその辺も読んでみればもっと上達するでしょう
他にもヘンな部分があるので色々他の人のコードとかも読むといいね
628(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/10(月)17:14 ID:cWC6BpGk0(2/3) AAS
>>627
ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。
上下前次1-新書関写板覧索設栞歴
あと 374 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.024s