!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 154
https://mevius.5ch.net/test/read.cgi/tech/1578997950/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 155
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 76ba-P5bm)
2020/05/10(日) 23:20:27.99ID:Z3WQBr9X0182デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/06(土) 01:24:08.28ID:Lxl6lnvAa おいちゃんの K&Rの表紙は、6ビットの紙テープで描かれた Cという文字だな
183デフォルトの名無しさん (ワッチョイ c146-Po7o)
2020/06/06(土) 03:35:05.84ID:xnAk4BrC0 今の本?(写真3つ目)は鑽孔テープじゃないのか。
dictionarymay.cocolog-nifty.com/blog/2012/08/c-f754.html
dictionarymay.cocolog-nifty.com/blog/2012/08/c-f754.html
184デフォルトの名無しさん (ワッチョイ caad-DtfW)
2020/06/06(土) 06:53:02.07ID:WvOhFHQn0 英語では数は3桁区切りだったもんだからつい2進数も3桁毎に区切って考えてしまったのではないかな?
185デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/06(土) 08:12:55.01ID:EzIfGGLg0 流石にそれは無理があるw
>>181が言うように1バイトと言うか1文字が6bitで良かったから3bit x 2で管理するのが都合が良かった
なので当時のコンピュータには18bitとか36bitマシンとかもあった
その流れで16bitマシンでもパネルとかは3bit区切りになってたりする
https://www.hpmuseum.net/images/2108A-37.jpg
>>181が言うように1バイトと言うか1文字が6bitで良かったから3bit x 2で管理するのが都合が良かった
なので当時のコンピュータには18bitとか36bitマシンとかもあった
その流れで16bitマシンでもパネルとかは3bit区切りになってたりする
https://www.hpmuseum.net/images/2108A-37.jpg
186デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 08:18:49.66ID:/D6kD8C1M ABCDEFを数字として扱うには時代が早すぎたんだよ
187デフォルトの名無しさん (ワッチョイ ca4f-uikQ)
2020/06/06(土) 08:31:19.90ID:maGrK2WM0 コンピュータの黎明期は、時間や角度の単位のようにいろんな約数がある方が
応用が効くと思われていたらしい。
応用が効くと思われていたらしい。
188デフォルトの名無しさん (ワッチョイ 3e8c-tVk4)
2020/06/06(土) 08:56:36.69ID:sv96bxFv0 にしん御殿を建てた漁師もいた。
189デフォルトの名無しさん (ワッチョイ 2a52-gmWH)
2020/06/06(土) 09:02:46.57ID:AQK/o2mm0 >>181
N進数自体は論理的にはNがどんな正の正数でも可能だけど、C言語的に文法上8進数が記述できるのはUNIX系のファイルシステムのパーミッションとかで使いやすいからとかでないかな。
N進数自体は論理的にはNがどんな正の正数でも可能だけど、C言語的に文法上8進数が記述できるのはUNIX系のファイルシステムのパーミッションとかで使いやすいからとかでないかな。
190デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 09:03:53.79ID:HDxtjsAHM C言語の整数リテラル0は8進数
191デフォルトの名無しさん (ブーイモ MM2e-mXJe)
2020/06/06(土) 09:54:16.10ID:URn6wcZIM c言語で9ビットのコンピュータ使ったことあるが、頭が狂いそうになったよ
192デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/06(土) 10:14:23.16ID:df/Ddbgs0 これまで常識だと思っていたことをあっさり否定されてしまうから?
193デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/06(土) 11:47:23.01ID:7ywXVWZR0194デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 12:02:30.70ID:iC9mu8GeM 組み込みだと4bitマイコンあたりはまだ現役で使われてそうだな
C言語処理系があるかどうかは知らんけど
C言語処理系があるかどうかは知らんけど
195デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 12:06:28.77ID:iC9mu8GeM196デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/06(土) 14:08:17.65ID:7ywXVWZR0 >>194
Cがあったとしても char の最少サイズは 8bit が保証されてるから、Cを使うとかえって面倒そう。
Cがあったとしても char の最少サイズは 8bit が保証されてるから、Cを使うとかえって面倒そう。
197デフォルトの名無しさん (ブーイモ MM2e-mXJe)
2020/06/06(土) 14:13:59.16ID:URn6wcZIM198デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/06(土) 14:32:33.46ID:3ChBl+cga 0377=255、0777=-1 じゃない?
199デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/06(土) 14:38:42.25ID:df/Ddbgs0 DEC PDP-7は18bitマシンだったから
200デフォルトの名無しさん (ワッチョイ 86d2-uikQ)
2020/06/06(土) 16:36:30.29ID:75+7y3pj0 アセンブラで別のCPU勉強し直すと変に前のCPUの知識が足引っ張って戸惑う。
Z80 → x86
セグメント?概念は理解できた。記述方法よくわからん。
repって何?
byte prt ? word ptr? あ、データサイズ指定必要なんだ。
→とあるスパコンCPU
え?オペランド3つ?
あ、0レジスタは聞いたことある。
スタックレジタ無し?汎用レジスタで代用?
Z80 → x86
セグメント?概念は理解できた。記述方法よくわからん。
repって何?
byte prt ? word ptr? あ、データサイズ指定必要なんだ。
→とあるスパコンCPU
え?オペランド3つ?
あ、0レジスタは聞いたことある。
スタックレジタ無し?汎用レジスタで代用?
201デフォルトの名無しさん (ワッチョイ caad-wk5h)
2020/06/06(土) 17:08:16.80ID:WvOhFHQn0 こんなまとめ記事のようなものを発見した。
1バイトが8bitに定まったのは2008年 - Qiita
https://qiita.com/yaju/items/c5da6df2221d5c3611e0
1バイトが8bitに定まったのは2008年 - Qiita
https://qiita.com/yaju/items/c5da6df2221d5c3611e0
202デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/06(土) 20:08:01.18ID:xUUhYAg30 ソフト的に1バイトは8ビットかも知れないが、回路的には奇数アドレスは存在しないから、1バイトは16ビットなり32ビットで扱われているんだよな
203デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/06(土) 20:16:06.02ID:M07jk5SE0 >>189
ダウト
ダウト
204デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/06(土) 20:21:12.72ID:M07jk5SE0 >>200
MIPSか?
MIPSか?
205デフォルトの名無しさん (ラクッペペ MMde-uyzx)
2020/06/06(土) 20:23:53.57ID:c5HWAPmOM > 回路的には奇数アドレスは存在しない
そんなものはマイコンのアドレスバスの接続方法による
小容量の内蔵RAMしか利用できないマイコンだと16bit単位とか効率悪すぎるだろ
そんなものはマイコンのアドレスバスの接続方法による
小容量の内蔵RAMしか利用できないマイコンだと16bit単位とか効率悪すぎるだろ
206デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/06(土) 21:05:24.00ID:xUUhYAg30 >>205
データバスが16ビットのデバイスはA0が存在しないから、奇数アドレスがないんだよ
ハードウェア的には8ビットは扱えない
上位はコンパイラーが無視してるんだろ
昔の6800系のgccは奇数アドレスが使えなかった
データバスが16ビットのデバイスはA0が存在しないから、奇数アドレスがないんだよ
ハードウェア的には8ビットは扱えない
上位はコンパイラーが無視してるんだろ
昔の6800系のgccは奇数アドレスが使えなかった
207デフォルトの名無しさん (ドコグロ MM72-pFiI)
2020/06/06(土) 22:04:47.08ID:gPrzX488M 8ビットバスとかダイナミックバスサイジングとか無視して何言ってんの。
208デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/07(日) 04:50:34.91ID:OwGdNnMk0 8ビットが扱えるやつのint型もエンディアンがビックかリトルかで、ややこしくなる場合がある
209デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/07(日) 09:49:33.48ID:8XBNAcXF0 カメラ屋がどうした
210デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 10:16:23.75ID:H9nBLvae0211デフォルトの名無しさん (ワッチョイ ca4f-uikQ)
2020/06/07(日) 10:27:42.17ID:uZfe/Sta0 10進の1が00になって2が000とかかな。
212デフォルトの名無しさん (ワッチョイ 8663-Ee3U)
2020/06/07(日) 10:50:04.35ID:u8uKtPqt0 ON/OFFはどう区別するんだ?
213デフォルトの名無しさん (ワッチョイ c146-Po7o)
2020/06/07(日) 10:51:10.58ID:SnZB8S+e0 インド人もびっくり
214デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/07(日) 11:32:40.14ID:Mh1dmxtn0 e進数
215デフォルトの名無しさん (ブーイモ MM2e-gM8R)
2020/06/07(日) 12:36:00.73ID:sH3MBrgqM216デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/07(日) 13:19:03.64ID:8XBNAcXF0 >>211
1倍すると桁が増えないといけないからいろいろ破綻しそうだな
1倍すると桁が増えないといけないからいろいろ破綻しそうだな
217デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:21:54.14ID:io+hJyHh0 1倍では桁は増えんだろ
2倍で桁数が2倍になる
2倍で桁数が2倍になる
218デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:33:17.03ID:rhi/+ASf0 1進数は存在しない
って話だろ
って話だろ
219デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:38:00.69ID:io+hJyHh0220デフォルトの名無しさん (ワッチョイ 4a0e-uikQ)
2020/06/07(日) 13:39:30.13ID:ZZaIDzdi0 ハフマン法のパーツ
221デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:45:05.25ID:rhi/+ASf0222デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:49:56.72ID:rhi/+ASf0223デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:50:06.08ID:io+hJyHh0224デフォルトの名無しさん (ワッチョイ 2d7b-W1iy)
2020/06/07(日) 16:38:34.23ID:Hm2+3fRX0 >>221 上手い書き換えだな。
何やら見覚えのある「位取り」というか「桁上がり」法だと思ったら、
「連番を(数字でなく)英文字を使って表現する」やり方がこれだ。
1番 a
2番 b
...
26番 z
27番 aa (位取り/桁上がりの 0 に相当する記号が存在しないため)
28番 ab
...
『Cの宝箱』(工学社)って本で数値からの変換プログラムを含めて初めて見た。
ANSI以前の古い本だけど、扱ってるネタは今でもなかなか面白い。
何やら見覚えのある「位取り」というか「桁上がり」法だと思ったら、
「連番を(数字でなく)英文字を使って表現する」やり方がこれだ。
1番 a
2番 b
...
26番 z
27番 aa (位取り/桁上がりの 0 に相当する記号が存在しないため)
28番 ab
...
『Cの宝箱』(工学社)って本で数値からの変換プログラムを含めて初めて見た。
ANSI以前の古い本だけど、扱ってるネタは今でもなかなか面白い。
225デフォルトの名無しさん (ワッチョイ 8663-Ee3U)
2020/06/07(日) 17:17:01.17ID:u8uKtPqt0 1進数のかけ算
111 × 11 = 111111
1111 × 11111 = 11111111111111111111
111 × 11 = 111111
1111 × 11111 = 11111111111111111111
226デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/07(日) 17:27:43.06ID:ABh2E5hxF >>224
excelのカラム名だな
excelのカラム名だな
227デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 17:53:13.82ID:H9nBLvae0228デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/07(日) 17:56:40.04ID:ABh2E5hxF 定義上は間違ってない
0の桁上がりが00で次が000なら成立してる
0の桁上がりが00で次が000なら成立してる
229デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 18:51:19.67ID:H9nBLvae0 まあお前の定義ならそうなんだろうな
230224 (ワッチョイ 2d7b-W1iy)
2020/06/07(日) 18:58:57.43ID:Hm2+3fRX0 >>226 確かに「Excelのカラム」がこれだね。
範囲指定の時にマウスポインタを暴走させるとちょくちょく目にする。
身近な実例なのに思いつかなかった。
それにしてもワッチョイの英数部分(何て呼ぶんだろ?)が FF11 とは。
範囲指定の時にマウスポインタを暴走させるとちょくちょく目にする。
身近な実例なのに思いつかなかった。
それにしてもワッチョイの英数部分(何て呼ぶんだろ?)が FF11 とは。
231デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/08(月) 15:49:07.32ID:blut5LG8F #
232デフォルトの名無しさん (ワッチョイ 7f5a-e9AF)
2020/06/10(水) 18:58:49.17ID:feWbpc5y0 今このスレ見返してたんですが
gcc -W -Wall
って意味あるんですか? -Wallオプションだけと何か違うの?
gcc -W -Wall
って意味あるんですか? -Wallオプションだけと何か違うの?
>>232
私も gcc/clang でそのオプションを好んでいます、理由はしりません…
私も gcc/clang でそのオプションを好んでいます、理由はしりません…
234デフォルトの名無しさん (ワッチョイ cf2d-6Bey)
2020/06/10(水) 22:37:56.41ID:GAHb3hGx0235デフォルトの名無しさん (ワッチョイ 7f5a-e9AF)
2020/06/10(水) 23:10:40.06ID:tM8DbNAJ0 >>234
なるほど
https://linuxjm.osdn.jp/html/GNU_gcc/man1/gcc.1.html
このページを見た限り-Wは-Wallに含まれてるのかなと解釈してました
どうもです
なるほど
https://linuxjm.osdn.jp/html/GNU_gcc/man1/gcc.1.html
このページを見た限り-Wは-Wallに含まれてるのかなと解釈してました
どうもです
236デフォルトの名無しさん (ワッチョイ 237b-FyPE)
2020/06/11(木) 06:19:27.46ID:zR4s1lAr0 man gcc を見ると -Wextra のところに This option used to be called -W.
と出てるね。日本語だと「かつては -W と呼ばれていた」で合ってるだろうか。
-W を指定することと -Wextra を指定することは同じ効果かな。
と出てるね。日本語だと「かつては -W と呼ばれていた」で合ってるだろうか。
-W を指定することと -Wextra を指定することは同じ効果かな。
237デフォルトの名無しさん (ワッチョイ 1a0e-IXeA)
2020/06/18(木) 12:45:08.73ID:5LdPXPiS0 clやgccのassertって生真面目にabortしてうざいね
イベント1001なんか記録してくれなくていいのに
イベント1001なんか記録してくれなくていいのに
238デフォルトの名無しさん (ワッチョイ 8f01-pPzt)
2020/06/24(水) 12:01:11.31ID:T7mdaPsT0 元気があればなんでもできる。
Cさえ出来ればなんでもできる。
Cさえ出来ればなんでもできる。
239デフォルトの名無しさん (ワッチョイ 7fd2-NJGG)
2020/06/25(木) 07:45:23.79ID:1LmSFJHY0 正しライブラリーは付属しません。
240デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 08:00:17.88ID:Nd1uEPT+0 C書いてる人ってみんな可変長配列とかリストとか木構造とかグラフとか自前で書けるよな?
241デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/25(木) 08:01:55.58ID:XUZZkb7Yd 木構造⊂グラフ
242デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/25(木) 08:03:09.05ID:XUZZkb7Yd 最近勉強して書けるようになったから嬉しいの?
243デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 08:06:39.00ID:Nd1uEPT+0 <3
244デフォルトの名無しさん (ワッチョイ 8f9b-/Fs/)
2020/06/25(木) 11:19:49.85ID:2XRewe5U0 >>240
自己参照構造体とか普通に使う
自己参照構造体とか普通に使う
245デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/25(木) 11:30:04.55ID:N8mY4JDD0 >>240
プロのミュージシャンは「蛙の歌」くらい自分で弾けるよな? くらいのシュールな質問だ
プロのミュージシャンは「蛙の歌」くらい自分で弾けるよな? くらいのシュールな質問だ
246デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/25(木) 12:01:03.23ID:6D953TAQ0 最近覚えた言葉を使ってみました
247デフォルトの名無しさん (ワントンキン MM9f-rLul)
2020/06/25(木) 12:24:56.81ID:9JLqMYSrM 職業画家ならピカソのイタズラガキぐらい描けるよな?
248デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 12:37:09.65ID:Nd1uEPT+0 <3
249デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/25(木) 12:50:41.05ID:VB93ltO10 単なるそういう構造でも感心するような実装ができたらすごいけどな。
メモリ管理は奥が深いよ。
メモリ管理は奥が深いよ。
250デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/25(木) 13:27:45.77ID:HOWmpZqad 名前が付いてるようなのは既存のを使えば良い
付いてないような複雑な構成、特殊な構成のものがさらっと作れるようになって一人前
名前が付いてる構造をただ列挙して喜んでるようなのは初心者
付いてないような複雑な構成、特殊な構成のものがさらっと作れるようになって一人前
名前が付いてる構造をただ列挙して喜んでるようなのは初心者
251デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/25(木) 13:32:44.25ID:CW3F7rpu0 >>240
API使うから見たこともない。
API使うから見たこともない。
252デフォルトの名無しさん (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:18:14.56ID:f73tPHfd0 カーニハンが引用して有名になったフレーズだったと思うけど
「職業プログラマーでも二分探索を正しく実装できる者は意外なほど少ない」
ってのと似てる感じね。
出典はベントリーさんの記事だったかな。
で、ベントリーさんが出してる二分探索ルーチンの例が
(細かいこと言えば)誤ってるというお見事なオチ。
「職業プログラマーでも二分探索を正しく実装できる者は意外なほど少ない」
ってのと似てる感じね。
出典はベントリーさんの記事だったかな。
で、ベントリーさんが出してる二分探索ルーチンの例が
(細かいこと言えば)誤ってるというお見事なオチ。
253252 (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:22:50.60ID:f73tPHfd0 いかん、カーニハンさんに「さん」付けるの忘れた。
カーニハンに「さん」を付けるとなんか座りが悪い気がするんだよ。
べつに「ハン」は関西弁の「〜はん」じゃないのだけど。
カーニハンに「さん」を付けるとなんか座りが悪い気がするんだよ。
べつに「ハン」は関西弁の「〜はん」じゃないのだけど。
254デフォルトの名無しさん (スッップ Sd5f-xaSm)
2020/06/25(木) 17:28:33.47ID:EHXNgq1Pd アカデミックな文章のなかでは敬称略はデフォやん
255デフォルトの名無しさん (ワッチョイ 3f01-In76)
2020/06/25(木) 17:53:32.70ID:Yy8QFoSC0 インブリードチェックとかねー
掘り掘りの打ち切り確認とか
可変配列で返せると効率的なのに記述や関数使用方法がCでは面倒くさいという
web上のサラブレッド血統表のインブリードどこも結構いい加減な自動抽出だし
掘り掘りの打ち切り確認とか
可変配列で返せると効率的なのに記述や関数使用方法がCでは面倒くさいという
web上のサラブレッド血統表のインブリードどこも結構いい加減な自動抽出だし
256デフォルトの名無しさん (ワッチョイ 7f46-rLul)
2020/06/25(木) 17:55:14.95ID:5kqDetxy0 飴ちゃんみたい、蟹はん。
257252 (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:58:50.94ID:f73tPHfd0258デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/25(木) 21:13:44.78ID:VB93ltO10 >>252
正しく実装ってのが何を指してるのかよく分からないけど、その解説ってどこかにある?
正しく実装ってのが何を指してるのかよく分からないけど、その解説ってどこかにある?
259デフォルトの名無しさん (ワッチョイ 0f3e-NJGG)
2020/06/25(木) 23:23:06.88ID:Dxq2c9AW0 2ch (5ch) ではカーニハンは蟹飯とか呼ばれたりするのも普通だからなー。
さんを付けた方がすわりが良いと思うなら付けてもいいが、
ここでは雑に言っても文句は出ないよ。
敬称を付けなきゃ敬意がないってわけでもないし。
さんを付けた方がすわりが良いと思うなら付けてもいいが、
ここでは雑に言っても文句は出ないよ。
敬称を付けなきゃ敬意がないってわけでもないし。
260デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/25(木) 23:35:03.55ID:kZgmLzec0 蟹めしとしか読めない。
261252 (ワッチョイ 0f7b-Yzg9)
2020/06/26(金) 07:00:11.04ID:Ks2Lu7GD0 >>258 の人に質問されたのでちょこっと書庫をひっくり返してみた。
書籍資料しか示せないし、古い本だから見つけるのは大変かも知れんけど。
今回は「さん」無しで書かせてもらう。人名が多くてやかましくなるでな。
カーニハンによる言及は『プログラミング作法』(ASCII)の第2章。
見直して気づいたけどベントリーからの直接の引用ではなかった。
あと、この本はカーニハンとパイクの共著だったので訂正させてもらう。
ベントリーによる2分探索法は『プログラム設計の着想』(近代科学社)の第4章。
ここに「ベル研とIBMで試したら2時間かけて正しく書けたのは10%」と出てる。
この章をまるまる使って、二分探索ルーチンを題材に、正しいプログラムを書く
手順を説明してるが、使用言語は擬似コードとBASICの方言。
補足としてネット情報 Wikipedia 「二分探索」ページ
特に「実装上の間違い」の部分が興味深いかと。
書籍資料しか示せないし、古い本だから見つけるのは大変かも知れんけど。
今回は「さん」無しで書かせてもらう。人名が多くてやかましくなるでな。
カーニハンによる言及は『プログラミング作法』(ASCII)の第2章。
見直して気づいたけどベントリーからの直接の引用ではなかった。
あと、この本はカーニハンとパイクの共著だったので訂正させてもらう。
ベントリーによる2分探索法は『プログラム設計の着想』(近代科学社)の第4章。
ここに「ベル研とIBMで試したら2時間かけて正しく書けたのは10%」と出てる。
この章をまるまる使って、二分探索ルーチンを題材に、正しいプログラムを書く
手順を説明してるが、使用言語は擬似コードとBASICの方言。
補足としてネット情報 Wikipedia 「二分探索」ページ
特に「実装上の間違い」の部分が興味深いかと。
262デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 07:30:17.89ID:zNtEkj210263デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:30:54.43ID:CbN2WAX/d 見てみたけど...
アルゴリズムの問題じゃなくて
ただのインデックスのオーバーフローか
インデックスが計算途中でオーバーフローする心配をするなら
要素数自体がintの範囲を越える心配やメモリ不足の心配もしないと
アルゴリズムの問題じゃなくて
ただのインデックスのオーバーフローか
インデックスが計算途中でオーバーフローする心配をするなら
要素数自体がintの範囲を越える心配やメモリ不足の心配もしないと
264デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:33:24.14ID:CbN2WAX/d intじゃ足りないかもしれないから
size_tじゃないとバグとか言い出すのか
くだらん
size_tじゃないとバグとか言い出すのか
くだらん
265デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:37:26.08ID:CbN2WAX/d 斜辺を求めるコードも
sqrt(a*a+b*b)
なんて書いたらバグだと言われちゃうね
sqrt(a*a+b*b)
なんて書いたらバグだと言われちゃうね
266デフォルトの名無しさん (ワッチョイ 0f97-h9M3)
2020/06/26(金) 07:53:21.24ID:R6SXx1iE0 まあ、ビット数の少ないCPUを使ってた頃はオーバーフローで実際にバグの挙動を示していたこともあったのかもね。
64bitになって、今しばらくはインデックスの足し算をいい加減な順番で行ってもオーバーフローになるほど実メモリが積めなそうだけども。
64bitになって、今しばらくはインデックスの足し算をいい加減な順番で行ってもオーバーフローになるほど実メモリが積めなそうだけども。
267デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 08:08:32.76ID:tBxKhrZw0 >>265
aとbがintなのにキャストしないタコいたら許さん
aとbがintなのにキャストしないタコいたら許さん
268デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 08:22:33.07ID:zNtEkj210 >>263
だからアルゴリズムじゃなくて実装の問題だって話なんだろ。
そして型が int だとか size_t だとかの問題でもない。
どんな型であろうと計算の途中でその型をオーバーフローする可能性がある式だというのが問題であり、扱ってるデータではオーバーフローしないことを意識した上でそういう式を選んでるのかたまたまそういう条件になってるのかは大違いってこと。
最近は64bitだからいちいちそんなこと考える必要もないというなら、それは違うだろと(検索対象がメモリで64bitに及ばないメモリ量の環境でしか使わないコードだという考慮くらいは必要)。
特にライブラリなんかでは、インデックスの許容範囲がその型の許容範囲より狭いならば明記しなければならない。
だからアルゴリズムじゃなくて実装の問題だって話なんだろ。
そして型が int だとか size_t だとかの問題でもない。
どんな型であろうと計算の途中でその型をオーバーフローする可能性がある式だというのが問題であり、扱ってるデータではオーバーフローしないことを意識した上でそういう式を選んでるのかたまたまそういう条件になってるのかは大違いってこと。
最近は64bitだからいちいちそんなこと考える必要もないというなら、それは違うだろと(検索対象がメモリで64bitに及ばないメモリ量の環境でしか使わないコードだという考慮くらいは必要)。
特にライブラリなんかでは、インデックスの許容範囲がその型の許容範囲より狭いならば明記しなければならない。
269デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 08:51:08.83ID:ulI8ykG3d270デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 08:55:01.02ID:ulI8ykG3d271デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 09:27:28.43ID:zNtEkj210272デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 09:39:45.10ID:zNtEkj210 >>271
a & 1 にカッコ忘れてるのは多目に見て
a & 1 にカッコ忘れてるのは多目に見て
273デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 10:09:23.28ID:zNtEkj210274デフォルトの名無しさん (ワッチョイ 7f69-H7K1)
2020/06/26(金) 10:12:30.36ID:DHczgJjy0 ビットand の & の優先順位が低いのがすげー気になるマン
275デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 10:24:55.68ID:0ez7fC22d >>271
aが小さいとダメだからバグです
aが小さいとダメだからバグです
276デフォルトの名無しさん (ブーイモ MM0f-Tpb5)
2020/06/26(金) 11:51:33.67ID:CsRb/b6RM 確かに、掛け算並みに優先度高くても良い気がする
277デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 12:06:06.43ID:wPd6FHznd 比較より低いのは仕様バグだな
278デフォルトの名無しさん (ワッチョイ 3ff9-5fXH)
2020/06/26(金) 12:54:54.87ID:hOK/Kg/V0 a,bがdoubleでsqrt(a*a+b*b)以外にどう書けと
279デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 13:34:59.23ID:zNtEkj210 >>278
もし double でも計算途中でオーバーフローする可能性があるなら、最初に適当な係数の平方で a b を割って計算してから係数を掛けるとか?
あるいは long double が使えるなら単純にそれで計算するとか。
逆に言えば、オーバーフローする可能性があるならなんとかしないといけないわけだから、なんの変形もせずオーバーフローするに任せたらそれこそバグでしょうよ。
もし double でも計算途中でオーバーフローする可能性があるなら、最初に適当な係数の平方で a b を割って計算してから係数を掛けるとか?
あるいは long double が使えるなら単純にそれで計算するとか。
逆に言えば、オーバーフローする可能性があるならなんとかしないといけないわけだから、なんの変形もせずオーバーフローするに任せたらそれこそバグでしょうよ。
280デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 13:41:41.84ID:zNtEkj210281デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 14:27:07.38ID:QICJMmXvM doubleでオーバーフローって、10の何乗を想定してる?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【速報】俳優の三浦春馬さん、自宅で死亡 自殺とみられる←この衝撃を超える速報テロ、いまだない
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- 【悲報】タンパク質さん、寿命を縮めることが判明
