[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
611: デフォルトの名無しさん (ワッチョイ 465c-6Hi7) [sage] 2025/02/09(日) 17:36:57.81 ID:KfUn2qZi0 >>610 的外れ いきるな初心者 http://mevius.5ch.net/test/read.cgi/tech/1721137434/611
612: デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl) [sage] 2025/02/09(日) 18:12:23.04 ID:sBzel75s0 桁上がりを別に判定しなきゃならないんだから扱えるギリギリの桁で計算するのはバカだろw アセンブラなら桁あふれフラグ見て簡単に処理出来るだろうが、Cだと無理 http://mevius.5ch.net/test/read.cgi/tech/1721137434/612
613: デフォルトの名無しさん (ブーイモ MMaa-6Hi7) [sage] 2025/02/09(日) 18:46:42.50 ID:fEimQ790M >>604 どこのサイト? それ書いてるやつ多分バカだぞ 参考にすんな http://mevius.5ch.net/test/read.cgi/tech/1721137434/613
614: デフォルトの名無しさん (ブーイモ MMaa-6Hi7) [sage] 2025/02/09(日) 18:57:40.14 ID:fEimQ790M >>610 charでやるのは馬鹿だがアルゴリズムは同じなんだから可読性は変わらない メモリもほぼ変わらない http://mevius.5ch.net/test/read.cgi/tech/1721137434/614
615: デフォルトの名無しさん (ワッチョイ de76-/Fy3) [sage] 2025/02/09(日) 19:00:51.12 ID:TclGPY+C0 整数値それぞれ (左右どっちだっけ)シフト1bitやって(1/2の値)足したのが最大値の半分超えたら桁溢れ 上位桁に溢れるだけ加算 Cでもできるに決まっているじゃん これだけだよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/615
616: デフォルトの名無しさん (ワッチョイ de76-/Fy3) [sage] 2025/02/09(日) 19:09:00.04 ID:TclGPY+C0 文字列って溢れの分が1-9まであって大変そう バイナリなら1bitだけでしょ http://mevius.5ch.net/test/read.cgi/tech/1721137434/616
617: 警備員[Lv.8][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 2025/02/09(日) 19:15:54.80 ID:WswbN0Go0 >>615 それってシフト演算の話ですか?(違ってたらごめんなさい。) 私、シフト演算は苦手なんですよね。 ただシフトするだけなら参考書とサイトみたらできますけど、ノールックでさらに四則演算になるとできないんですよ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/617
618: デフォルトの名無しさん (ワッチョイ de76-/Fy3) [sage] 2025/02/09(日) 19:34:02.21 ID:TclGPY+C0 考えたらシフトは無駄だった 64bit整数のうち63bit整数で考えて最上位ビットを溢れ判定に使えばよいだけ あんまり書くと宿題の手伝いになってそう http://mevius.5ch.net/test/read.cgi/tech/1721137434/618
619: デフォルトの名無しさん (ブーイモ MMaa-6Hi7) [sage] 2025/02/09(日) 19:44:20.36 ID:fEimQ790M >>618 足したあとの結果から判定する 教えるなら定石を教えろや http://mevius.5ch.net/test/read.cgi/tech/1721137434/619
620: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/09(日) 19:51:22.43 ID:vUYqd53r0 二進化十進はたとえば表示の処理なんかは簡単になるので無駄なわけではない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/620
621: デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl) [sage] 2025/02/09(日) 20:03:35.95 ID:sBzel75s0 いまどき文字も16bit時代にケチケチすんなw http://mevius.5ch.net/test/read.cgi/tech/1721137434/621
622: 警備員[Lv.8][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 2025/02/09(日) 22:27:12.88 ID:WswbN0Go0 >>618 なるほどですね。因みにこれは宿題ではなく、自主学習のやつです。とあるサイトの解説がよくわからなくてこの板の方々に質問させていただきました。 ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/622
623: デフォルトの名無しさん (ワッチョイ de76-/Fy3) [sage] 2025/02/10(月) 07:27:24.30 ID:ZpC+jsE10 あと実数でやったと出たけど要注意 double verybignum; verybignum += 1.0; で1.0は桁を合わせると0に消えて足されない場合がある http://mevius.5ch.net/test/read.cgi/tech/1721137434/623
624: デフォルトの名無しさん (アウアウエー Sa82-R6kM) [] 2025/02/10(月) 11:48:59.09 ID:Z13/KCo3a 吊りならともかく本物の初心者なら文字コードを知らないってこともあるだろうな 多倍長整数をバイト列(1桁0-255)じゃなくて文字列(1桁0-9)で表すのは無駄が多いがアルゴリズムは同じはず それでもピンと来ないなら先に文字コードについて理解するべき http://mevius.5ch.net/test/read.cgi/tech/1721137434/624
625: 警備員[Lv.2][新芽] (ワッチョイ 278e-tGgj) [sage] 2025/02/10(月) 13:13:09.48 ID:BwJhqJpr0 IntelのアセンブラならBCDを扱う命令があったと思うけど、Cでやるなら文字に代入する時点で &= 0x0F、計算して出力する前に |= 0x30(でいいんだっけ?)かなー http://mevius.5ch.net/test/read.cgi/tech/1721137434/625
626: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF) [sage] 2025/02/10(月) 13:19:14.90 ID:cWC6BpGk0 やや強引だがアドレスとして同じでも比較すると等しくないという結果になる例を作ってみた。 https://wandbox.org/permlink/hpAkiEeiZclvQJsn 概念的にはポインタはアドレスというのでも間違いではないけど実際には言語のルールを把握していないと引っかかることもある。 ホスト規制でしばらく書き込めなかったので遅レスですまぬ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/626
627: デフォルトの名無しさん (ワッチョイ 6a56-WFrT) [] 2025/02/10(月) 16:46:22.93 ID:xKid5uSQ0 よく分からないがこうなる理由が分からないという意味の質問かな? まあそうだとして、C言語では異なるオブジェクトへのポインタを比較出来ないってルールがある それが行われているので、未定義の動作といってこのプログラムではコンパイラがどんな事をしてもいいことになってる そのどんな事の中にはnot equalを表示するという動作も含まれているので、たまたまそうなったんでしょう 初心者がよくやるFAQレベルのミスなので、ポインタとオブジェクトを理解する意味でその辺も読んでみればもっと上達するでしょう 他にもヘンな部分があるので色々他の人のコードとかも読むといいね http://mevius.5ch.net/test/read.cgi/tech/1721137434/627
628: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/10(月) 17:14:00.11 ID:cWC6BpGk0 >>627 ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/628
629: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/10(月) 17:18:14.15 ID:cWC6BpGk0 >>623 文意がよくわからんが初期化されてないから不定値になってるんじゃない? http://mevius.5ch.net/test/read.cgi/tech/1721137434/629
630: デフォルトの名無しさん [sage] 2025/02/10(月) 17:44:23.62 ID:1DQgWNxh0 >>627 > よく分からないがこうなる理由が分からないという意味の質問かな? このスレは初めてか? はちみつさんがそんな質問するわけないだろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/630
631: 警備員[Lv.5][新芽] (ワッチョイ 8713-tGgj) [sage] 2025/02/11(火) 00:58:16.10 ID:nkHTE6y60 これはどういうことなんだ? foo、barの順にスタックに積まれる bazにはfooの次の(intの境界の)番地(barと同じ)が入り、quzにはbarの番地が入る bazとquzには同じ番地(値)が入っている までは分かる bazもquzもint型を指している が、bazとquzの内容を比較するとことなる なんじゃこりゃ〜 酔ってなくても分からなそう http://mevius.5ch.net/test/read.cgi/tech/1721137434/631
632: 警備員[Lv.5][新芽] (ワッチョイ 8713-tGgj) [sage] 2025/02/11(火) 01:04:37.69 ID:nkHTE6y60 >>627がいうことがそれなのか 未定義だと アセンブラ脳だと同じとみなしてくれてよさそうだけど、難しいね… http://mevius.5ch.net/test/read.cgi/tech/1721137434/632
633: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/11(火) 08:30:33.47 ID:YWsMUNTvp 型変換すればOK http://mevius.5ch.net/test/read.cgi/tech/1721137434/633
634: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/11(火) 11:05:12.56 ID:0+q77CUl0 >>632 強調しておくけど未定義は何が起こってもよい。 この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。) 低レイヤから入った人は未定義をナメてることが結構あるとは思う。 どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/634
635: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/11(火) 11:22:08.87 ID:kmJe274sp Cなんてポインターは全部void*だろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/635
636: デフォルトの名無しさん (ワッチョイ 1e63-euVe) [sage] 2025/02/11(火) 11:37:41.91 ID:7Jzkf7ZG0 ご無体な http://mevius.5ch.net/test/read.cgi/tech/1721137434/636
637: 警備員[Lv.6][新芽] (ワッチョイ 46ac-tGgj) [sage] 2025/02/11(火) 12:35:30.87 ID:m4FoXgHJ0 >>626 は僕のgccのパージョンだと -O2 ありだと "not equal" 最適化なしだと "equal" -S つけて .s をみると、-O2 ありのときポインタの比較すらせず単純に puts("not equal"); とするコードを出力していた "equal" のリテラルすらコードにはない 降参 http://mevius.5ch.net/test/read.cgi/tech/1721137434/637
638: デフォルトの名無しさん (ワッチョイ 4606-6Hi7) [sage] 2025/02/11(火) 13:33:00.20 ID:jMpjlVqA0 strict aliasingのルールがなぜあるか理解してたらある程度予想つくだろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/638
639: デフォルトの名無しさん (ワッチョイ de76-/Fy3) [] 2025/02/11(火) 14:32:56.35 ID:VhWouMxY0 そもそも 8Byteや4Byte変数のポインタが例えば奇数の数値が許されるのかとか http://mevius.5ch.net/test/read.cgi/tech/1721137434/639
640: デフォルトの名無しさん (ワッチョイ 1e63-euVe) [sage] 2025/02/11(火) 14:40:28.60 ID:7Jzkf7ZG0 文字列を指すポインタなら、一文字ずつインクリメント出来ないと困るよね http://mevius.5ch.net/test/read.cgi/tech/1721137434/640
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 362 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.023s