20/01/14 19:44:25.29 Xjyusg2Z0.net
完
3:デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
20/01/14 20:20:26 Ae/uveiQ0.net
前スレのこれに質問です。
32bitアプリだとmallocで確保していくと2GB近くでエラーになりませんか?
頑張って色々施しても4GB近くが32bitだと限界じゃないんですかね?
もし回避策があるなら教えてください。
999デフォルトの名無しさん (ワッチョイ 7f36-///2)2020/01/14(火) 19:45:37.22ID:MAaOflfD0
>>978
ちょっと待てや
おまえ単一仮想記憶を前提に話してるか?
今や多重仮想記憶が当たり前で単一仮想記憶はかなり特殊な存在だぞ
4:デフォルトの名無しさん (ワッチョイ 7f36-///2)
20/01/14 20:30:37 MAaOflfD0.net
前スレ999本人だが
議論できるやついる?
5:デフォルトの名無しさん (ブーイモ MM9f-0qp1)
20/01/14 20:44:32 XPzaribqM.net
paeのことかしら。それでもアプリが使えるメモリは4gb以下に制限されるみたいだけど
6:デフォルトの名無しさん (ワッチョイ 7f36-///2)
20/01/14 20:57:35 MAaOflfD0.net
paeじゃない
オーバープロセスのことだよ
7:デフォルトの名無しさん
20/01/14 20:59:32.15 vjAz2zAO0.net
アドレスを保持する変数が32bitなんだから
どう頑張っても4GBまで
実際は32bit Windowsの制約で2GBまで
あとは前スレ >>982 の方法しかない
8:
20/01/14 21:02:41.42 m9Mcjsqu0.net
スレリンク(tech板:982番)
>FARポインタを扱えるようにするか
馬鹿いってんじゃないよ!このニワカ!死ね!百遍死ね!
「far/near ポインタ」は 16bit リアルモードでの用語だ
9:デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
20/01/14 21:13:14 Ae/uveiQ0.net
しかし別プロセスにしようとどうしようと
結局データのアドレスは受けないといけないので
そのポインタ自体が32bitで管理されてる以上
その限界はどうしようもないような。
10:デフォルトの名無しさん (ワッチョイ df73-AxFo)
20/01/14 21:21:42 vjAz2zAO0.net
>>8
セグメントレジスタとセットで48bitで処理するって意味
(書かなきゃわからないですか?)
CPU的には可能だけどOS的にもコンパイラ的にも不可能だから実質不可能
11:デフォルトの名無しさん (ワッチョイ df73-AxFo)
20/01/14 21:22:29 vjAz2zAO0.net
ニワカはどっちだwww
12:デフォルトの名無しさん (ワッチョイ 7fa6-uXf3)
20/01/14 21:31:07 S6Ak+Pxt0.net
32ビットだと大きいメモリは最初の方で確保して最後の方で解放するなぁ
あるいはプロセスを分けるか
13:◆QZaw55cn4c (ワッチョイ 7f47-soYg)
20/01/14 21:32:43 m9Mcjsqu0.net
>>10-11
ではお聞きいたしますが、セグメントレジスタ16ビット+レジスタ32ビットのペアで指定した先は何ビット空間ですか?
IA-32 アーキであるかぎり、どうあがいても32bit 空間ではないでしょうか?PAE 搭載であってもユーザーからみえるのはやっぱり32ビットなのでは?
14:デフォルトの名無しさん (ワッチョイ df73-AxFo)
20/01/14 21:34:48 vjAz2zAO0.net
>>13
知らないなら黙ってろよ
15:デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
20/01/14 21:40:51 RxBpnTJ90.net
多重仮想記憶ってプロセス毎に同じアドレス空間を提供するだけの話
(逆に単一仮想記憶はプロセッサのアドレス空間を分割してプロセスに提供する)
URLリンク(yougo.ascii.jp)多重仮想記憶
前スレの質問はアプリの話だからあんまり関係ないよ
オーバープロセスとか言うオレオレ用語はよくわからんけど…
オーバーコミットの話じゃないよね?
16:◆QZaw55cn4c (ワッチョイ 7f47-soYg)
20/01/14 21:41:08 m9Mcjsqu0.net
>>14
私の質問に回答できないのですね…
IA-32 では、それが PAE を搭載していたとしても、ユーザーが一度に扱えるのは32ビットどまりですよ
>>10
>CPU的には可能だけど
CPU的にも不可能です
17:デフォルトの名無しさん (ワッチョイ 7fa6-uXf3)
20/01/14 21:56:01 S6Ak+Pxt0.net
windows依存なら CreateFileMapping MapViewOfFile で32ビットより大きいのをやりくり
18:デフォルトの名無しさん (ワッチョイ df2d-G18V)
20/01/14 21:57:06 jSZPoIDP0.net
今、話題になっているのは32bitOSの場合であって、IA-32 どうこうは微妙に違う話にも思えるのは内緒。
ということで話を戻すと、例えば32bit版Windowsには、OS管理外メモリとして8Gだの16Gだの扱うことができるRAM-DISKアプリがあるわけで。
32bitアプリでも、セグメントレジスタに正しいセレクタ値をセットできるのであれば、4G超のメモリ空間を扱える、と言えなくもない予感がする。
19:デフォルトの名無しさん (ワッチョイ df73-AxFo)
20/01/14 22:02:55 vjAz2zAO0.net
386の時代から仮想アドレス空間は64TBだってのに
20:デフォルトの名無しさん (ワッチョイ 7fa6-uXf3)
20/01/14 22:04:06 S6Ak+Pxt0.net
>>18
RAM-DISK使わんでもAPIには上位32ビット下位32ビットの64ビット指定できるから
21:デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
20/01/14 22:05:55 Ae/uveiQ0.net
話の前提は、64bitOSで32bitプログラムを動作させる場合ですね。
22:デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
20/01/14 22:09:55 iQtyfXTR0.net
できるならやり方を具体的に提示してくれよ
罵り合ってる内容が一切質問者に有益な情報じゃない
23:デフォルトの名無しさん (ワッチョイ df73-AxFo)
20/01/14 22:15:15 vjAz2zAO0.net
64bitOSなら32bitアプリで4GiBまで扱える(ように出来る)
これでいくらかは改善するのでは?
24:デフォルトの名無しさん (ワッチョイ df2d-G18V)
20/01/14 22:16:39 jSZPoIDP0.net
>>17 >>20
スレリンク(tech板:986番)
25:デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
20/01/14 22:16:46 Ae/uveiQ0.net
>>23
確かにオプション指定でそれが出来ますね。
やっぱりそれが限界でしょうかね。
26:デフォルトの名無しさん (ワッチョイ df73-AxFo)
20/01/14 22:18:31 vjAz2zAO0.net
それでもダメなら
DLLを扱う用の32bitプロセスと
多量のメモリを扱う64bitプロセスに分けて
プロセス間通信でデータをやり取りする
27:
20/01/14 22:31:10.88 m9Mcjsqu0.net
>>19
80386 に関していえば、その記述「386の時代から仮想アドレス空間は64TB」はわりとデマ的に流布されていることは理解します。手元の本
URLリンク(www.)あまぞん.co.jp/dp/4756101305/
にも載っていました、確かに紛らわしい記述だとは思います
セグメントレジスタが指す「セレクタ値」は8バイトごとである、という事実から、セレクタ値のアドレスを意味する部分を16-2=14ビットとして、これと一般レジスタ32ビットとの直積から
46ビット=64T 分のアドレス空間が取れる、という計算だとは思いますが、この記述は不正確であり実情からは程遠いと思います
80386 では、セグメントレジスタが指すセレクタ値にひも付けられているセグメントベースはやはり32ビット空間の中なんです。32ビット空間の外に出ることはありません。
28:デフォルトの名無しさん
20/01/14 22:34:42.75 vjAz2zAO0.net
Pentium Pro の時代から64GiB扱えるわけですが
Windows Server系は32bitでも64GiB使える(ものもある)わけですが
問題はフラグメントなのでアドレス空間が広がれば解決するわけですが
29:デフォルトの名無しさん
20/01/14 22:36:48.89 vjAz2zAO0.net
コテのくせにド素人だな
30:
20/01/14 22:55:14.31 m9Mcjsqu0.net
>>29
セグメントレジスタが指すグローバルディスクリプタテーブル(GDT)中の一つ一つのエントリー(セレクタ値)に含まれる情報の配置状況が 80386 から変わっておれば、あなたのおっしゃることは理解できます
pentium を例にそれを示せますか?
31:デフォルトの名無しさん
20/01/14 23:11:55.67 vjAz2zAO0.net
>>14
32:デフォルトの名無しさん
20/01/15 00:13:17.27 SlSlX/cQ0.net
仮想86EMSが使われていた頃
33:デフォルトの名無しさん (ワッチョイ ae0d-sHAu)
20/01/15 03:41:15 7yCfF8ki0.net
>>6
ググっても出てこないので、正確な技術用語を教えてください
34:デフォルトの名無しさん (ワッチョイ 8236-HLSl)
20/01/15 07:36:38 6QOzbNpL0.net
ファイルマッピング
でいいか?
35:デフォルトの名無しさん (ワイーワ2 FF4a-otum)
20/01/15 13:40:12 eUr1BYr3F.net
リソースの再利用について
URLリンク(www.youtube.com)
36:デフォルトの名無しさん (ワッチョイ 02a6-pREH)
20/01/15 13:56:26 +l1Z2xEr0.net
大きいメモリをできるだけ上位のアドレスで割り当てる
普通のメモリ割り当てなら下位のアドレスになるから
使い分けで断片化の影響を減らせる
VirtualAllocの MEM_TOP_DOWN
37:デフォルトの名無しさん (ワッチョイ 8261-frEi)
20/01/15 14:03:29 60b3MtID0.net
XPで付属のIMEだかuxtheme.dllあたりが中途半端なbaseaddress指定してあって1ブロックとしては700MBくらいまでしか確保できなかった思い出
38:デフォルトの名無しさん (ワッチョイ bd02-otum)
20/01/16 23:59:28 n2KajW3z0.net
2つスレッドがあってサブの方を使わない時は
こんな感じで待機してるんだけどやっぱマヌケかな?w
その都度作った方がやっぱいいの?
while(flag){ Sleep(1000); }
39:デフォルトの名無しさん
20/01/17 00:38:20.87 VVaP2eJK0.net
間抜けというか、完全に寝かせてしまえばいいのでは?
40:デフォルトの名無しさん
20/01/17 00:42:06.99 Ed4nA3uH0.net
>>38
環境を書かないと
WindowsならDefWindowProc呼び出すとか
Unixならselectでイベント発生を待っているとか
41:デフォルトの名無しさん (ワッチョイ 412d-6zBS)
20/01/17 01:14:24 rOjn9SwA0.net
>>38
それは簡単のように見えて、実は奥深いプログラミングのテーマの1つかもだけど。
問題がないのであれば、そのコードはマヌケでもないし悪くもないので、そのままでいいと思うよ。
42:デフォルトの名無しさん (ワッチョイ bd02-otum)
20/01/17 01:18:32 e4Iv2ZR10.net
>>39-41
環境はWindowsです。
スレッドは二つだけでサブも結構使ってるので
flagで管理して動かしたい時だけTRUEにしてる感じです。
特に動作に問題はないのでこのままでいいんでしょうかね。
43:デフォルトの名無しさん (ブーイモ MMe5-4X0p)
20/01/17 01:31:08 uTUiG7kHM.net
リソースの競合がないんなら好きにすればいいけど、
あるなら、動いているように見えて低い確率で破綻するってのもあるよ
44:デフォルトの名無しさん
20/01/17 01:37:20.83 rOjn9SwA0.net
>>42
問題がない以上、NGにする理由もないわけで、このままでいいです。
言い換えると、何か問題があるなら、それに応じた修正や変更の必要ありかもです。
45:デフォルトの名無しさん
20/01/17 02:10:16.80 e4Iv2ZR10.net
>>43
一応そのへんは気を付けてるつもりなので今のところは問題ないですね。
>>44
分かりやすくていいので問題ないならこのまま行こうと思います。
ありがとうございました。
46:デフォルトの名無しさん (ワッチョイ b957-otum)
20/01/17 02:43:46 gAZZjojh0.net
呼んでから起きるまでのタイムロスはどうでもいいのか
47:デフォルトの名無しさん
20/01/17 03:19:40.62 e4Iv2ZR10.net
>>46
そこはOKです。瞬時に処理してくれなくても問題ない処理なので。
48:デフォルトの名無しさん
20/01/17 06:13:31.64 KcAYJrW80.net
>>38
イベント待ちがスマートでは?
サブは WaitForSingleObject でイベント待ち
サブを動かす時は メインスレッドから SetEvent する
49:デフォルトの名無しさん
20/01/17 07:22:16.67 C1DTJTUYM.net
>>38
すげーマヌケに見える
スレッド作成する時間も惜しいなら>>48が言うようにイベントとかを使うべきだし、そうでないなら自分で言ってる通りその都度作った方がいい
そもそもサブともうひとつのスレッドとのやり取りはないんか?
50:デフォルトの名無しさん
20/01/17 07:26:24.09 sP/gsAG30.net
>>48でFA
51:デフォルトの名無しさん (ワッチョイ 6e7b-sHAu)
20/01/17 09:59:39 Bc/tu7Ki0.net
スレッドプール用のapiあるんだからそっちのが良くない?
52:デフォルトの名無しさん (ワッチョイ bd02-otum)
20/01/17 20:18:08 e4Iv2ZR10.net
>>48-51
ありがとうございます。参考にさせてもらいます。
53:デフォルトの名無しさん
20/01/17 21:01:33.00 IvE1mrxVa.net
POSIXスレッドなら cond wait みたいなの使うのがよさげ
54:デフォルトの名無しさん (オッペケ Srd1-s5Rz)
20/01/17 21:27:33 fcTBGFJ8r.net
int main()
{
int array[100][10];
array[0][0] = 61;
printf("%d\n", *(int*)array ) ;
}
これなんでIntポインターにキャストしないとだめなん?
arrayでもポインターだから*つければ配列の先頭参照できないとおかしくね?
例えば
char array[] ="unko king";
だとしたら
%s とarrayで文字列表示できるじゃん
*(char*)arrayなんてしないでしょ?
55:デフォルトの名無しさん (オッペケ Srd1-s5Rz)
20/01/17 21:32:02 fcTBGFJ8r.net
%s とarrayで文字列表示できるじゃん
*(char*)arrayなんてしないでしょ?
じゃなくて(char*)arrayだわ
みすった
56:蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ f901-eWjF)
20/01/17 21:33:28 90cOo2870.net
配列はポインタではない。
57:デフォルトの名無しさん (オッペケ Srd1-s5Rz)
20/01/17 21:37:01 fcTBGFJ8r.net
>>56
添字つけない場合は配列の先頭のメモリアドレスを持つポインタなんだがw
58:デフォルトの名無しさん (オッペケ Srd1-s5Rz)
20/01/17 21:45:56 fcTBGFJ8r.net
>>56
例えば
int array[40][40];
array[30][30]=10;
int *p;
p=array;
*(p+(40*30)+30)でarray[30][30]にアクセスできる
59:蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ f901-eWjF)
20/01/17 21:51:59 90cOo2870.net
型に互換性があることと、型が同じであることは異なる。int[20][20]はint*とは互換性がない。
60:蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ f901-eWjF)
20/01/17 22:01:25 90cOo2870.net
配列はアドレス値を動かせない。
配列とポインタではsizeofの値が違うことがある。
多重ポインタと多次元配列はメモリレイアウトが異なる。
よって配列はポインタではない。
61:デフォルトの名無しさん (ワッチョイ 4135-TOPI)
20/01/17 22:35:45 EE408Bd70.net
2次元配列は各行の配列が配置されてるメモリ上のアドレスのリストですか?
その場合、そのリストの要素であるアドレス値はどうやって取り出せますか?
URLリンク(i.imgur.com)
62:デフォルトの名無しさん (ワッチョイ 4135-TOPI)
20/01/17 22:43:50 EE408Bd70.net
この場合で言う、データの列の10,20,30というようなアドレス値を取り出す方法はありますか?
63:デフォルトの名無しさん (ワッチョイ 4135-TOPI)
20/01/17 22:44:02 EE408Bd70.net
URLリンク(i.imgur.com)
64:蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-eWjF)
20/01/17 22:44:41 j19gqc7sd.net
1つの配列は連続した1つのメモリブロックになっている。二次元配列も1つのメモリブロック。配列の中身は実体。
配列名のみを指定すると配列の先頭へのポインタと互換になる。
65:蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-eWjF)
20/01/17 22:46:16 j19gqc7sd.net
array[1][2]のように要素を指定できる。
66:デフォルトの名無しさん
20/01/17 22:57:35.09 EE408Bd70.net
int array[10][2]はint[10]が2個あるという意味ですか?
67:蟻人間
20/01/17 22:58:16.83 j19gqc7sd.net
はい。
68:デフォルトの名無しさん
20/01/17 23:01:31.63 EE408Bd70.net
ではそのint[10]というのを行と呼ぶとした時、なぜこの実行結果では行間のアドレス間隔が行数になるのでしょうか。
URLリンク(i.imgur.com)
69:蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ f901-eWjF)
20/01/17 23:07:01 90cOo2870.net
>>67はウソ。
70:蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ f901-eWjF)
20/01/17 23:29:55 90cOo2870.net
スミマセン
71:デフォルトの名無しさん (ワッチョイ 02ad-A78j)
20/01/18 04:54:51 GHIm2HIn0.net
>>66
それはint[2]が10個だ。
72:デフォルトの名無しさん (ワッチョイ 8236-HLSl)
20/01/18 07:37:38 cLOUBKze0.net
>>54
おまえさんが array[0][0] = 61; と書いているように、
int は array[0][0] だ、ここ大事だぞ
array[0] は int ではないことを絶対に忘れるな
知ってのとおり
printf("%p", array); は
printf("%p", &array[0]); と解釈される
つまり int でないもののアドレスとなる
だから
printf("%d", *array); と実体化すると
printf("%d", *&array[0]); のように int でないものとなる
73:デフォルトの名無しさん
20/01/18 09:00:32.29 8VbKHwfkr.net
>>72
おおサンクス!
74:デフォルトの名無しさん
20/01/18 12:36:57.02 ADLYtxAZ0.net
int three[2][3][4];
これは4の配列が3個で、それが2個ということでおk?
75:デフォルトの名無しさん (ワッチョイ 42d2-Jw1z)
20/01/18 15:14:27 DLgVDe3/0.net
そうじゃない
int [3] [4]が二個
って考える
そのあとint[3][4]について考えると
int[4]が3個ってなる
76:デフォルトの名無しさん (ラクッペ MMe5-pplk)
20/01/18 15:19:38 TdnAkHteM.net
>>74はそう言ってるのでは?
77:デフォルトの名無しさん (ワッチョイ 829f-9xZB)
20/01/18 15:40:38 /vLKu3q60.net
静的に確保された多次元配列の実態はただの1次元配列だから
int array[2][2] = {};
array[1][0] = 2525;
printf(“%d\n”, array[0][2]);
ってやると2525が出力される
78:デフォルトの名無しさん (オッペケ Srd1-s5Rz)
20/01/18 18:10:12 8VbKHwfkr.net
再帰むずすぎてハゲそうだわ
これなにやってるかパット見て分かる人いる?
int rec(int num) {
printf("%d\n", num);
if (num == 1)
return 1;
else {
return num * rec(num - 1);
}
}
79:デフォルトの名無しさん (ワッチョイ 8236-HLSl)
20/01/18 18:15:41 cLOUBKze0.net
階乗のように見えるが、違うのか?
80:デフォルトの名無しさん (ワッチョイ 1db3-EgUp)
20/01/18 18:16:54 /9q/+LXn0.net
再帰の例で一番出てくるヤツ
if の中はゼロとの比較の方が良いと思う
81:デフォルトの名無しさん (ワッチョイ 42d2-Jw1z)
20/01/18 18:17:52 DLgVDe3/0.net
これをfixとかでやるとますますわからなくなる
82:デフォルトの名無しさん (ワッチョイ 1db3-EgUp)
20/01/18 18:19:40 /9q/+LXn0.net
rec(1) = 1
rec(n) = n * rec(n-1)
漸化式による記述
83:デフォルトの名無しさん
20/01/18 18:25:53.64 qr7I8bae0.net
重要なのはreturnの部分だけだしな
84:デフォルトの名無しさん (ワッチョイ 0201-mQF2)
20/01/18 19:28:24 34RcyaUW0.net
>>78
rec(3) 位にして自分でトレースしてみればわかると思う
85:デフォルトの名無しさん (ワッチョイ a9d2-co1w)
20/01/18 20:39:04 et7QELfi0.net
再帰のコードを書いていて不思議な気分になるのは
なんで今書いているものを呼び出せるんだろうとか思っちゃうからかな
86:蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-eWjF)
20/01/18 20:42:37 Q+FQEvxBd.net
再帰できるのはスタックフレームのおかげやで
87:デフォルトの名無しさん (ワッチョイ 8679-6zBS)
20/01/18 20:48:04 wrxXpMgf0.net
再帰は遅いから実践ではできれば使わずに済ませたい
88:デフォルトの名無しさん
20/01/18 21:18:15.56 Qnj8VWpB0.net
単純なループですむならその方がいいだろうな。
木構造の探索みたく本質的に再帰で書いた方が自然なものは再帰のがいい。
89:デフォルトの名無しさん (ワッチョイ 0201-mQF2)
20/01/18 21:47:38 34RcyaUW0.net
今どき再帰が遅い?
90:デフォルトの名無しさん (ワッチョイ 8679-6zBS)
20/01/18 21:54:07 wrxXpMgf0.net
今時~が遅いと言い放てる環境ならまず今時Cを使う意味がない
91:デフォルトの名無しさん (スップ Sd82-slCE)
20/01/18 22:37:40 jIyN1Euld.net
再帰は遅さより深さが怖い
92:デフォルトの名無しさん (ワッチョイ e1da-A78j)
20/01/18 22:44:24 ecN+p+Ar0.net
再帰でなければ実現できないアルゴリズムがあるとすれば,例えばどんなの?
93:デフォルトの名無しさん (ワッチョイ c546-KHKa)
20/01/18 23:02:02 Kwj2OX4/0.net
> でなければ実現できない
という要件が気になる。
94:デフォルトの名無しさん (アウアウクー MM91-0c/Z)
20/01/19 02:29:28 ec7Q1zSDM.net
迷路のルート検索に再帰で書いた事あるけど10000ぐらいでスタックオーバーするので再帰をループで書き直した思いで
95:デフォルトの名無しさん
20/01/19 04:29:07.91 r8dbXOf20.net
お前ら知ってるか
Pythonの構文解析はgoto文の状態遷移なんだぜ
あれ見てPythonは業が深い言語だと思ったわ
まぁあれが一番早いんだろうけど
96:デフォルトの名無しさん (ワッチョイ 8236-HLSl)
20/01/19 06:30:18 6oeBvQPN0.net
ツリー探索なんか待ち行列を使えば非再帰に変形できるからな
97:デフォルトの名無しさん (スップ Sd22-EgUp)
20/01/19 08:03:33 D5W6f6uHd.net
C言語で記述可能かどうかって意味なら
どんなものでも非再帰に変形可能
98:デフォルトの名無しさん (ワッチョイ 0201-mQF2)
20/01/19 08:20:31 UmCLgzkS0.net
>>95
構文解析とかは大抵そうだよ
最近は使ってないから変わってるかも知れんが昔yacc/lex使った時の出力はgoto使い捲くりだったし
99:デフォルトの名無しさん (ワッチョイ a17b-WxMz)
20/01/19 08:26:41 bqsJmSpA0.net
>>85
関数の最初に「返り値と関数名と仮引数リスト」を書くでしょ。
それだけの情報があれば関数を呼び出すには十分なのだ。
…と、構造体名の前方宣言みたいな説明でケムに巻いてみる。
100:デフォルトの名無しさん (ワッチョイ 82a5-36M6)
20/01/19 09:07:49 IjeRNxme0.net
ソースコード上ではあたかも再帰が可能かのように見せかけてるだけでしょ
そういうウソをコンパイラは演出してくれている
101:デフォルトの名無しさん (ワッチョイ e252-iiEx)
20/01/19 09:13:46 Wel1D6/w0.net
>>85
実際に再帰呼び出しが実行されるのはその関数が書き終わったあとなのだから何の不思議もないような気がするが。
102:デフォルトの名無しさん
20/01/19 09:52:53.26 L+cLui7g0.net
そもそもC言語の再帰をコンパイルして出てきたマシーンコードって
スタックに積んでgotoしてるだけのループじゃん
103:デフォルトの名無しさん
20/01/19 10:09:42.96 IjeRNxme0.net
本物の再帰を実現できる無限のメモリーなんて存在しないじゃん
だから現状は擬似再帰、
しかもあと500年くらいは擬似再帰で我慢してもらうしかない
104:デフォルトの名無しさん (ワッチョイ 42d2-Jw1z)
20/01/19 10:31:33 L+cLui7g0.net
再帰は再帰専用のメモリースペースを使うから限界がすぐくるだけやぞ
105:デフォルトの名無しさん (ワッチョイ 82a5-36M6)
20/01/19 10:42:13 IjeRNxme0.net
今の科学力では本物の数学的な再帰なんて実現出来ない、
だから、擬似再帰に留まってる
あとは実数マシンと整数マシンで、現状は離散的な整数マシン
実数をそのまま扱えるマシンすら存在してない
106:デフォルトの名無しさん (スップ Sd22-EgUp)
20/01/19 10:49:21 RfLx+x9Fd.net
コンピューターに限界がある
なんてことは誰でも知ってるから
いちいち書かなくても良いよ
107:デフォルトの名無しさん (ワッチョイ 82a5-36M6)
20/01/19 10:56:48 IjeRNxme0.net
だな
>>102が言うからには他の言語ではもっと画期的な方法があるのかと思ってた
108:デフォルトの名無しさん (ワッチョイ 42d2-Jw1z)
20/01/19 10:57:08 L+cLui7g0.net
そもそも宇宙は巨大な計算機だからすでに存在してる
109:デフォルトの名無しさん (ワッチョイ 4263-A78j)
20/01/19 11:00:03 +Juhn6xh0.net
無限ループこそが再帰の神髄
110:デフォルトの名無しさん (スップ Sd22-EgUp)
20/01/19 11:00:47 RfLx+x9Fd.net
本物の再帰
とか
疑似再帰
とか
文系かよ
111:デフォルトの名無しさん (ワッチョイ a17b-WxMz)
20/01/19 15:32:55 bqsJmSpA0.net
>>105
「アナログコンピュータ」ってのがあって、俺がいじったのは
その都度回路を組んで信号を送って電圧計の針の振れを観察するんだが、
あれは一応、物理の限界の精度で実数をそのまま扱うマシンだね。
このスレッドで扱う対象じゃないけど。
112:デフォルトの名無しさん (スップ Sd22-EgUp)
20/01/19 15:48:32 RfLx+x9Fd.net
アナログと実数には遠い溝が...
精度はデジタルの方がはるかに上
113:デフォルトの名無しさん (アウウィフ FF05-otum)
20/01/19 16:44:13 ehZNNwbSF.net
>>54
そんなキャストはしてはいけない
お前の使い方が間違ってる
敢えて括弧を付けるが正しいのはこの二つだけ
printf("%d\n", *(array[0]));
printf("%d\n", *(*array));
114:デフォルトの名無しさん (ワッチョイ 8236-HLSl)
20/01/19 17:47:28 6oeBvQPN0.net
無駄なだけの「正しい」括弧なんかやめれ
printf("%d", (*array)[0]); //少なくともこれの意味がわかるようになるまでは
115:デフォルトの名無しさん
20/01/19 19:24:15.02 IVwJAfoP0.net
ポインターがintと同じサイズと思うなよ
116:デフォルトの名無しさん (ワッチョイ 8236-HLSl)
20/01/19 20:11:46 6oeBvQPN0.net
エー、エイチ、オー
117:デフォルトの名無しさん (ブーイモ MMcd-lkYm)
20/01/19 20:13:42 AxsWVwh/M.net
丸括弧の次に優先順位が高い角括弧ってだけの話じゃん
識別子に最優先くっついてガツンと先に作用するて意味じゃわかりやすい関数等の丸括弧を除いて最強という。
118:デフォルトの名無しさん (ワッチョイ e252-iiEx)
20/01/19 20:40:31 Wel1D6/w0.net
>>117
なんか演算子の優先順位をいい加減に覚えてそう。C言語のBNFでも見てきたら?
119:デフォルトの名無しさん (スップ Sd22-EgUp)
20/01/19 21:31:45 RfLx+x9Fd.net
+ と << が混ざった演算
( ) を付けないと警告を出すアホコンパイラがあるんだよね
120:デフォルトの名無しさん
20/01/22 18:42:43.98 fnLfByOj0.net
ウィキのバスエラーの所に出ているサンプルをVisual Studioでコンパイルしたんですが
デバッガで見てもゴミ値が入るだけで特に警告もエラーも出さないので
バスエラーになっているかいないか分かりません。バスエラーを体験するにはどうすればいいですか?
コンパイルオプションで対応出来ますか?
URLリンク(ja.wikipedia.org)
121:デフォルトの名無しさん
20/01/22 18:48:19.32 0ayd3B3Q0.net
x86はアラインメント不整合でも正常に読み書き出来る
AVXレジスタで
アラインメントが整ってないと使えない命令があるから
それを使えば例外発生する
MOVAPS など
122:120 (ワッチョイ 5fda-ET0W)
20/01/23 20:01:35 9tTsebGL0.net
ありがとうございました。
123:デフォルトの名無しさん (ワッチョイ 5f61-RMi8)
20/01/23 20:11:21 6RFiXn/e0.net
int main(void)
{
return *(int *)0;
}
の方が簡単
124:デフォルトの名無しさん (アウアウウー Sa4b-AenA)
20/01/24 17:55:51 zcPs/H1Xa.net
>>123
それセグメンテーションフォルトでは?バスエラーになるCPUあるの?
125:デフォルトの名無しさん
20/01/24 18:05:28.52 xfkHfIRp0.net
リードアクセスだしなあ
0番地が未実装というのは考えにくいね
126:デフォルトの名無しさん (ワッチョイ c701-/WoK)
20/01/24 19:16:51 JBJjeU6+0.net
そもそもバスエラーとかセグメンテーションフォールトは、CPUの例外等をOS側で適当にマッピングして、そう呼ぶOSがあるというだけだからOS依存。
x86/x64のCPUで>>123のような適当なメモリアクセスを行うと、CPUで例外#GPや例外#PFが発生する。UNIXならそれを状況に応じてセグメンテーションフォールト(SIGSEGV)やバスエラー(SIGBUS)として扱い、WindowsだったらEXCEPTION_ACCESS_VIOLATIONとして扱う。
アライメントがずれている時は、発生した例外#ACをバスエラー(SIGBUS)やEXCEPTION_DATATYPE_MISALIGNMENTとして扱う。
127:デフォルトの名無しさん
20/01/24 20:23:29.22 xfkHfIRp0.net
ASを出してから一定時間経過してもDTACKが帰ってこないとBERR端子をぶっ叩かれてバスエラー
128:デフォルトの名無しさん (ワッチョイ 5f61-RMi8)
20/01/24 20:40:29 aSv3EoFQ0.net
68K通った人からするとアライメント不整合はアドレスエラーの印象が強い
129:デフォルトの名無しさん (ワッチョイ 27b3-oAbd)
20/01/24 21:00:31 3pA3r7pN0.net
スパッと例外で死んでくれれば良いんだけど
単にズレるだけってCPUがある
130:デフォルトの名無しさん (アークセー Sx7b-lpLI)
20/01/25 00:46:35 cts07rfpx.net
int i;
int *pi = &i;
*((int *) (((char *) pi) ÷ 1)) = 1;
x86はこれがバスエラーにならないね
131:デフォルトの名無しさん (バットンキン MMeb-/WoK)
20/01/25 01:00:05 vvn39fxSM.net
>>130
÷は+だとして、
eflagsのACビットを立てておくとバスエラーになる
132:デフォルトの名無しさん (アークセー Sx7b-lpLI)
20/01/25 01:03:11 cts07rfpx.net
>>131
ゴメン、その通り
加算演算子です
133:デフォルトの名無しさん (ワッチョイ 5f63-Jq7D)
20/01/25 01:05:26 iDfv/qKw0.net
そもそもx86だとバスエラー発生が無理なんではないのか?
134:デフォルトの名無しさん (ワッチョイ 877b-qY3Q)
20/01/25 05:21:20 g3vROROv0.net
>>129
ARMのCPUでアラインメントの整合を怠ったら
偶数番地/奇数番地か、その2倍のアドレス値だったか
データの半分しか書き込まれなくて…って事態を目撃したことがある。
素朴なビットマップグラフィックのプログラムだったので
画面がシマシマになるのが文字通り目で見えた。
同じソースをx86系で実行すると期待通りの結果になるんだよ。
135:デフォルトの名無しさん (ワッチョイ c701-/WoK)
20/01/25 18:58:17 OESzqPub0.net
>>130
>>133
// x64 linux
volatile int x[2];
int main () {
asm("pushf");
asm("btsl $18, (%rsp)"); // set AC
asm("popf");
// *(int*)((char*)x+1)=1; // SIGBUS
asm("pushf");
asm("btrl $18, (%rsp)"); // clear AC
asm("popf");
return 0;
}
136:デフォルトの名無しさん (アークセー Sx7b-lpLI)
20/01/25 23:01:02 5aeLZw2zx.net
>>135
130です
130のように書くとバスエラーがなければ ip を破壊する可能性が高いし、最適化でコードが生成されないためのケアもされていて思慮深いコードですね…
しかしGASのオベランドは逆に見えてしまって…
137:デフォルトの名無しさん (ワッチョイ 5f63-Jq7D)
20/01/25 23:05:55 iDfv/qKw0.net
やはりアセンブラの領域にまで踏み込まないと無理なんでしょうね
138:デフォルトの名無しさん (ワッチョイ 5fa3-9VUD)
20/01/25 23:07:44 tu9lbSH20.net
>>92
再起はループに起こせるよ
139:デフォルトの名無しさん
20/01/28 19:15:06.58 oIjih5hj0.net
起こせるけど再帰の方がシンプルに書ける
140:デフォルトの名無しさん (ワッチョイ 5fa5-UqN9)
20/01/28 19:58:49 KHL1SP2c0.net
バカには(再帰は)無理
141:◆QZaw55cn4c (ワッチョイ 5f47-pMYN)
20/01/28 21:13:43 kvBVtoLm0.net
>>138
本当ですか?
二方向以上への再帰をループに起こせる自信は私にはありません
142:デフォルトの名無しさん
20/01/28 21:28:18.02 wcDzWZFN0.net
枝分かれするとき、「今は進まない」方向を待ち行列に並ばせておいて
あとで対応しにくればええやん
143:デフォルトの名無しさん
20/01/29 04:36:34.49 8i6C3PjP0.net
複数関数をまたがる再帰
関数コールがたくさんの箇所で行われる
こんなヤツだとループにするのは非常にメンディー
可能ではあるけど
144:デフォルトの名無しさん (ブーイモ MMc9-BGKF)
20/01/29 07:12:24 6aVmGUgqM.net
クイックソートの非再帰実装とかあちこちに転がってるから勉強しとけ。
待ち行列じゃなくスタックな。
145:デフォルトの名無しさん (ワッチョイ 9e8c-Witc)
20/01/29 07:41:04 X/jeBiHu0.net
大きいプログラムだと差は小さい。
146:デフォルトの名無しさん (ワッチョイ b67c-unxX)
20/01/29 08:52:34 WHzHFeoy0.net
>>144
キューでも再帰実装できるし別に良くね?
147:デフォルトの名無しさん (アウアウウー Sa21-lBRq)
20/01/29 09:55:20 Ji+gdkxYa.net
もっと口を尖らせて
148:デフォルトの名無しさん (ブーイモ MMc9-BGKF)
20/01/29 10:07:23 6aVmGUgqM.net
>>146
できる例もあるが一般の再帰では無理
149:デフォルトの名無しさん (ワッチョイ b67c-unxX)
20/01/29 10:15:28 WHzHFeoy0.net
>>148
太い枝から積んで順にやってけばええんやで
150:デフォルトの名無しさん
20/01/29 11:54:36.69 /CdgIXHbH.net
>>149
よくわからんからコード出して
151:デフォルトの名無しさん
20/01/29 11:56:45.66 HJZ6WUGV0.net
金取っていいパターンだな
152:デフォルトの名無しさん
20/01/29 13:00:56.99 jPsoIsZ7d.net
一般的には
パラメーターとローカル変数とコール位置
などの情報をスタックに積んでいく
機械的にやるならこれしかない
ほぼ再帰と同じ処理になる
機械的にやらないなら場合によっていろいろな方法がある
153:デフォルトの名無しさん
20/01/29 13:01:50.34 i1SX986la.net
>>149
太い枝の意味が分からんが、処理の順序が変わってしまうような変更はダメじゃね?
元の再帰のコードが必ずしもその太い枝の順とは限らないし、そもそも木構造とは限らないだろう。
154:デフォルトの名無しさん
20/01/29 13:17:09.29 p9IYATJW0.net
再帰の代替なら素直にスタックでやった方が楽だよな。ポインタ1つで済むし
155:デフォルトの名無しさん (ワッチョイ 6a36-i7CI)
20/01/29 13:42:07 HJZ6WUGV0.net
再帰ではスタックを使うからって
そこで脳硬化症にかかると。。。
156:デフォルトの名無しさん (ワッチョイ 6aa5-OeZ9)
20/01/29 14:08:59 0fI82nWR0.net
本物の再帰を実現可能なマシンなんて存在しない
全部はスタックに還元するしか無いんだから
再帰だなんだと騒いでも結局現行のスタックやアドレスでどうにかなるじゃん
本当に再帰でしか書けなくなるのは本物の再帰を実行可能な再帰マシンが出来てからの話
157:デフォルトの名無しさん (ワッチョイ ea02-L01+)
20/01/29 14:21:03 drvY0wlA0.net
ここでvoidくんの見解を聞いてみよう
158:デフォルトの名無しさん (ワッチョイ 4a52-G6DY)
20/01/29 15:32:00 iDUguYS70.net
>>156
よく分からないんだけど、本物の再帰ってどういうもの?
スタックが有限だということを除いて、今のC言語の再帰関数の実現方法と本質的には何が異なるの?
159:デフォルトの名無しさん (ワッチョイ 2ac5-/fp1)
20/01/29 18:05:30 pS76hSXZ0.net
再帰ソムリエの俺からすれば疑似再帰など下の下
本物再帰こそコードに埋め込まれるに相応しい
芳醇な香りと甘酸っぱい味わい
160:デフォルトの名無しさん
20/01/29 18:27:48.80 HJZ6WUGV0.net
たとえ64bit空間(16EiB)でも「真の」再帰はできんぞ?
どこかで必ず再帰を諦めるかクラッシュする可能性が排除できない
161:デフォルトの名無しさん
20/01/29 18:35:20.80 8i6C3PjP0.net
本物の再帰
真の再帰
次は何が出てくるかな?
162:デフォルトの名無しさん
20/01/29 18:50:58.59 7jhbc4AI0.net
(究極 | 至高 | 伝説 | 奇跡)の再帰
163:デフォルトの名無しさん
20/01/29 18:56:18.56 pS76hSXZ0.net
俺、斎藤再帰、17歳
今日も玄関から出続ける登校が始まるぜ!
エンドレスナイト!
164:デフォルトの名無しさん
20/01/29 18:58:52.17 kTgu21G10.net
>>161
本家 再帰
元祖 再帰
165:デフォルトの名無しさん
20/01/29 19:14:11.95 ZN4TcJna0.net
再起を賭けた戦いが始まる!
166:デフォルトの名無しさん
20/01/29 19:34:26.07 cVCtJzafM.net
負けたやつは二度とコード中で再起を使えない
167:デフォルトの名無しさん
20/01/29 20:07:17.39 kTgu21G10.net
>>163
定時制ですか?
168:デフォルトの名無しさん (ワッチョイ 6a36-i7CI)
20/01/29 20:44:02 HJZ6WUGV0.net
再起不能w
169:デフォルトの名無しさん
20/01/29 22:19:07.14 kTgu21G10.net
それは歳のせいでしょう
170:デフォルトの名無しさん
20/01/30 00:19:52.75 oEmB/ijk0.net
>>170
自己再起
171:デフォルトの名無しさん
20/01/30 00:35:40.44 v1tZ7RqBM.net
puts("無限ループやん");
172:デフォルトの名無しさん
20/01/30 05:13:48.15 cjZm5rKh0.net
>>160
真の再帰ってなんですか?160がどくじにかんがえたさいきょう再帰ってことでいいですか?
173:デフォルトの名無しさん (ワッチョイ 1546-10I6)
20/01/30 06:00:39 gnQ2YSBX0.net
>>172
必ず再帰を諦めずクラッシュしないという定義が>>160に書かれてあるように、オラには見える。
174:デフォルトの名無しさん
20/01/30 07:15:03.02 Z7o7STkD0.net
mainを再帰させるべき。
175:デフォルトの名無しさん
20/01/30 07:33:27.84 7USHzq/h0.net
ああ、
そんなコードを書いたことがある
176:デフォルトの名無しさん
20/01/30 07:35:18.50 7USHzq/h0.net
少ない文字数で大きな数を作るのを競うヤツで
177:デフォルトの名無しさん
20/01/30 10:15:17.82 OBUYa7FA0.net
赤い目を光らせて再起動
I will be back!
178:デフォルトの名無しさん (ワッチョイ 6a36-i7CI)
20/01/30 11:34:47 6JJixhdc0.net
どっちかつーと溶鉱炉で自分で自分を吐いているT-1000の姿が再帰に近いだろう
179:デフォルトの名無しさん (ワッチョイ 2ac5-/fp1)
20/01/30 20:32:51 fVK6hy0p0.net
お前ら再帰してるときのプログラムの気持ち考えたことあるの?
俺はある
ちょっと恥ずかしいんだよな、自分を省みるみたいで
180:デフォルトの名無しさん
20/01/30 20:50:43.10 XBwSjSkj0.net
何言ってんだこの馬鹿
181:デフォルトの名無しさん (ブーイモ MM8e-BGKF)
20/01/30 21:25:54 N4FezhNTM.net
俺はCPUの気持ちになってるよ。
「ちょ、おま、いまのとこほっといて、またそっち行くわけ?」
「え、戻れるように退避してる?ならいいけど……」
みたいな。
182:デフォルトの名無しさん
20/01/30 23:15:18.07 OBUYa7FA0.net
結んでいたはずの命綱をたぐり寄せると全部手元に来てしまったw
183:デフォルトの名無しさん (ワッチョイ 9e8c-Witc)
20/01/31 08:16:18 Kenfb4Kv0.net
AIは兵士をメカで作らない。たぶん生物兵器であろう。
ターミネータは嘘っぽい。エイリアンの方が本当っぽい。
184:デフォルトの名無しさん (ワッチョイ 8a1e-7ddI)
20/01/31 09:16:07 R8G2m3ys0.net
アウトランダーズ
185:デフォルトの名無しさん
20/01/31 12:32:57.36 b8EdwmzO0.net
アウトランナーズ
186:デフォルトの名無しさん
20/01/31 12:37:32.33 1BlsaWfK0.net
アウトフォクシーズ
187:デフォルトの名無しさん (ワッチョイ 7963-6LpL)
20/01/31 18:16:56 TLQmE8wI0.net
c言語で書く金融アプリケーションの事例がいくつか知りたいのですが!
188:蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd0a-EwIG)
20/01/31 18:23:03 EyOnVgK3d.net
>>187
金融なら、Haskell・OCamlでC言語ソース生成くらいグリグリやってんとちゃう?
189:デフォルトの名無しさん
20/01/31 19:41:28.40 K802DmBra.net
ないんじゃないかな?
190:デフォルトの名無しさん
20/01/31 19:46:08.12 k4NtdgGW0.net
金融アプリケーションって何?
191:デフォルトの名無しさん
20/01/31 19:47:08.82 xOuBGXY8d.net
COBOLとか使うヤツ
192:デフォルトの名無しさん
20/01/31 21:16:24.88 70BTs5bI0.net
>>187
疑問文なのに何で末尾に!を付けるの?
質問していると言うよりクレームつけてるみたいだなw
193:デフォルトの名無しさん
20/01/31 21:29:06.27 aVH6lH010.net
4GLとか使って「COBOLの範疇」で書いたつもりになってるやつらが
縁の下の力持ちを知らないのか無視しているのかどっちでもいいが
悪いが鼻で笑わせてもらってたね
俺が見てた事例ではCじゃなくアセンブラだったが
194:デフォルトの名無しさん
20/01/31 21:30:33.47 aVH6lH010.net
元来、俺はそんなに皮肉屋じゃないはずなんだが
連中の上から目線がそうさせていた
195:デフォルトの名無しさん (ワッチョイ eaad-Yjow)
20/02/01 06:47:44 PlRScEsI0.net
いや、まあ、CでCOBOLコンパイラ作る事は可能だろうけどね。
196:デフォルトの名無しさん (ワッチョイ 2a63-unxX)
20/02/01 11:17:42 yTeildyw0.net
何十年か前、GCCをベースにシステムを作った金融サイトがあることはある
GPLに触れないようライブラリは全部自前で用意してた
端末、サバクラのやり取り、サーバー間のデータ交換、全部Cで作ってた
197:デフォルトの名無しさん (ワッチョイ 89b3-x67y)
20/02/01 11:18:36 tav2AwxI0.net
GCC
198:デフォルトの名無しさん
20/02/01 12:36:41.04 50MDw/OE0.net
視力検査?
199:デフォルトの名無しさん (ワッチョイ 6a36-i7CI)
20/02/01 21:42:14 BhmlSyWc0.net
IOCCC
200:>>187
20/02/02 01:07:46.29 8cBiUpXt0.net
みなさんありがとうございます
(googleもみると)あるにはありそうな気もするけど
やっぱあまりよくないのかな。強烈に速度がほしい。
201:デフォルトの名無しさん
20/02/02 01:09:27.11 8cBiUpXt0.net
一方でIoTや組込的な決済プログラムは結構あるそうな。
C言語は安心して使えるから好きなんだよね。
202:デフォルトの名無しさん
20/02/02 01:19:26.11 lNG3EL+m0.net
業務アプリケーションまで持って行くのが割と大変だと思う
例えばお金の計算させるにしても、概算で良いなんてことは普通無いし
そのライブラリ作っても、信頼性の検証もしないと行けなくなる
預金システムなら、安全堅牢なファイルシステムも工夫しないといけない
趣味や学習として作る分にはとても興味深いものがあるけれど
実用するには、それを得意とするミドルを利用する方が無難だと思う
203:デフォルトの名無しさん
20/02/02 02:59:35.06 8cBiUpXt0.net
むむぅ
204:◆QZaw55cn4c (ワッチョイ 4a47-NwnA)
20/02/02 07:10:56 9jRHEnns0.net
>>202
>お金の計算させるにしても、概算で良いなんてことは普通無いし
今は uint64_t があって、ほとんどカバーできますよ
205:デフォルトの名無しさん (ワッチョイ 89b3-x67y)
20/02/02 07:40:39 D8WvcGqJ0.net
なにそのトンチンカンな発言
足し算引き算しかしないと思ってるの?
206:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/02 07:50:53 SWo7Ruqh0.net
1844京6744兆0737億0955万1615円まで扱えるなら
全人類の富を表現できるけど
10銭が循環小数になっちゃ困るね
207:デフォルトの名無しさん (ワッチョイ 7dda-unxX)
20/02/02 09:10:15 Wawdq7250.net
10銭を1単位にすりゃいいんじゃね?
表現できる最高金額が1桁減っちゃうけど
208:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/02 09:12:29 SWo7Ruqh0.net
じゃあ1銭は循環小数でいいのかって話
きりねえだろ
209:デフォルトの名無しさん
20/02/02 09:18:53.11 Wawdq7250.net
>>208
じゃぁ今現在のシステムではどうなってんの?
210:デフォルトの名無しさん
20/02/02 09:20:01.71 VB3p6sP1M.net
>>208
韓国の方ですか?
211:デフォルトの名無しさん
20/02/02 09:31:06.07 SWo7Ruqh0.net
>>209
10進数で計算するんだよ、2進数じゃなく
212:デフォルトの名無しさん
20/02/02 09:35:04.50 Wawdq7250.net
>>211
そうじゃない
例えば円を単位としたとき小数点以下何桁まで保証してるのかって話
213:デフォルトの名無しさん
20/02/02 09:42:25.20 SWo7Ruqh0.net
>>212
それは場面場面で色々だ
任意精度演算ってやつ
214:デフォルトの名無しさん
20/02/02 09:47:08.09 Wawdq7250.net
>>213
はぁ?
きりがないんじゃなかったのか?
215:
20/02/02 09:51:31.13 Rn0kkYyt0.net
一銭二銭、あるいはそれ未満を扱うのなら、uint64_t を固定小数点で使えばいいだけでしょうね
>>205
>足し算引き算しかしないと思ってるの?
お金の計算なんて 9 割が加減乗除で済むのでは?
お金の計算で特に必要で特別な計算ってなにかありますか?
216:
20/02/02 09:52:20.20 Rn0kkYyt0.net
>>211
10進で計算しなければならない、その必要性はなんですか?
217:デフォルトの名無しさん
20/02/02 09:58:14.19 PeaPXPNSM.net
>お金の計算で特に必要で特別な計算ってなにかありますか?
複利計算で累乗
218:デフォルトの名無しさん
20/02/02 10:02:09.62 0Gqmr5420.net
>>215
例えば複利計算とかなら小数の計算の精度を厳密に規定しないと問題になるはず。専門外だから詳しくは知らないが、法律か金融機関ごとにでも決められているんだろう。
お前みたいにお金の計算はお小遣い帳をつけるくらいにしか使わないなら整数だけで問題ないだろうけど。
219:デフォルトの名無しさん
20/02/02 10:28:42.42 8cBiUpXt0.net
古い言語なのに意外と10進演算ライブラリとかもないですよね
個別に作ってるだけかもしれませんが
220:
20/02/02 10:37:05.52 Rn0kkYyt0.net
>>218
小数点以下の丸めでは、例えば「五捨五入」のもあるみたいですし
でも「厳密に規定」とかいうほどの難しい方法はないとおもいますよ、普通に固定小数点の整数で問題ないのでは?
>>219
10進演算、って普通の整数の加減乗除とどう違うのですか?
221:デフォルトの名無しさん
20/02/02 10:45:51.01 j5gc2NvRd.net
本当に何も知らないんだねQZ
222:デフォルトの名無しさん (ワッチョイ e5f9-/fp1)
20/02/02 10:56:35 /IWX5gyF0.net
計算機ができる前は人が筆算してたんだよ、勿論10進で
それと合わなきゃならないの
だからBCDとかやるの
精度が確保されてればより正確なんだけど、「本当はこっちの方がより正確です」はダメなんだわ
それまでと変わっちゃダメなの
223:デフォルトの名無しさん (ワッチョイ 1163-6LpL)
20/02/02 10:57:27 8cBiUpXt0.net
>>220
色々種類はあると思うけど10進数で小数点を扱えるんですよ
また丸め処理も10進数で出来るのですよ
224:◆QZaw55cn4c (ワッチョイ 0aaa-NwnA)
20/02/02 11:00:28 Rn0kkYyt0.net
>>221
はい、8086 AAA, AAD, AAM, AAS 等の10進補正命令は知っていますが、今から考えても何故にアンパック形式10進なる形式を作ったのか、普通に2進整数+固定小数点では何故だめだったのか、納得できる理由をずっと探しているのです
225:◆QZaw55cn4c (ワッチョイ 0aaa-NwnA)
20/02/02 11:04:52 Rn0kkYyt0.net
>>222
つまり「人の作業との突合せ・検算のために10進演算や BCD があった」ということですか?
でも、そうであっても普通に 2 進整数+固定小数点の演算で問題ないと思うのですが
>>223
BCD で出来る、ということを知りたいのではなく(なぜならばそれはすでに知っているから)、なぜ BCD が必要だったのか、という理由が知りたいのです
226:デフォルトの名無しさん
20/02/02 11:23:45.02 85W5AYJA0.net
金融業界の習わしの発端について知りたいなら、それ関係のスレで聞けばいいんじゃね?
金融関係システムが10進で計算してるのは常識なんだし要求要件なんだから
それに疑問挟んでごねるプログラマーにはシステム開発発注したくねぇなぁ
227:デフォルトの名無しさん
20/02/02 11:32:34.14 nz0OxFB30.net
単純に考えて、「(10進)小数点以下N桁目で四捨五入する」なんて規定があるときに
2進固定小数でやるのは面倒くさいじゃん。
228:デフォルトの名無しさん
20/02/02 11:36:06.33 SWo7Ruqh0.net
>>214
どこで四捨五入するかなんて
プログラムじゃなく経理さんのルールだかんね
プログラマはそれに合わせるってだけのこと
229:デフォルトの名無しさん
20/02/02 12:32:50.80 VB3p6sP1M.net
>>228
だったら固定小数点で良くね?
きりが無いなんてことはない
230:デフォルトの名無しさん
20/02/02 12:37:44.03 w7N5c9rM0.net
そもそもお金に0.1円とかないから四捨五入は必要ない
231:デフォルトの名無しさん
20/02/02 12:43:11.07 SWo7Ruqh0.net
固定か浮動かって問題じゃない
10進の0.1が2進では0.00011001100110011001100110011...という循環小数になり
金の話では出てこないはずの誤差が出るって話だ
最小単位が1円のときは10銭、10銭のときは1銭が2進演算では正しく扱えない
最小単位をいくらにしても同じことというのをキリがないと言ったんだ
232:デフォルトの名無しさん
20/02/02 12:46:55.96 VB3p6sP1M.net
>>231
最小単位以下の誤差なんて累乗計算でも出るじゃん
233:デフォルトの名無しさん
20/02/02 12:48:44.37 SWo7Ruqh0.net
>>230
\1,000,500_に源泉税率10.21%を掛けたらいくらになる?
234:デフォルトの名無しさん
20/02/02 12:49:20.92 SWo7Ruqh0.net
>>232
誤差の出方が10進と2進では違うって話
235:デフォルトの名無しさん
20/02/02 12:51:06.34 w7N5c9rM0.net
誤差がでてもそれよりすごく大きい数で四捨五入するんだから同じだろ
236:デフォルトの名無しさん
20/02/02 12:51:15.29 VB3p6sP1M.net
>>234
性質が違っても誤差は誤差
あんた金の話では誤差は出ないって言ったばかりだぞ
鳥頭か?
237:デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
20/02/02 12:56:31 ceem9FS20.net
10進数では、1/3 が循環小数で、
2進数では、1/10 が循環小数って、言うだけ!
238:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/02 12:59:27 SWo7Ruqh0.net
>>236
それは間違ってるぞ
同じ計算を他のところ、たとえば税務署でやったら結果が違うなんてことになるとまずいだろうが
239:デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
20/02/02 13:00:47 w7N5c9rM0.net
10進数で手動で計算するときと同じ誤差のでかたじゃないと駄目なんじゃないか?
240:デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
20/02/02 13:04:59 w7N5c9rM0.net
問題なのは四捨五入じゃなくて
2進数だと0.1が表示できないってことじゃないのか?
10進数なら0.1から0.9まで全部表示できるけど
241:デフォルトの名無しさん
20/02/02 13:28:12.47 OL0mFBDc0.net
計算機イプシロンでいいだろもう
今回の低レベルの諍いについてvoid君はどう思う?
242:デフォルトの名無しさん
20/02/02 13:32:17.04 D8WvcGqJ0.net
結果の型とか四則演算方法とか単純な話じゃなくて
金融系の計算て数学やコンピュータの世界の常識とは違う計算をするんだよ
式自体からしておかしくて詐欺っぽいのもある
>>226の言うとおり
243:デフォルトの名無しさん
20/02/02 13:34:11.48 D8WvcGqJ0.net
100万円を利息年3%で借りた時
1年で利息はいくら?
244:デフォルトの名無しさん
20/02/02 13:39:19.37 Wawdq7250.net
そんなもんどんな返し方をするかがわからんと解析解さえ出ない
245:
20/02/02 13:39:53.93 Rn0kkYyt0.net
>>226
>金融関係システムが10進で計算してるのは常識なんだし要求要件なんだから
金融関係の業務でシステム内部表現まで10進表現(BCD等)にせよ、とする理由は、あなたはどのように推測しているのですか?
私は、金融関係であっても多桁長演算+固定小数点で顧客の要望は十分に満たされると考えますが。
金融系発注側も単に「double は使わないで」くらいの意味でしかないのでは?そして現実の実装も多桁長演算+固定小数点だったりするのでは?
あなたの >>226 の記述には合理性を感じることができません
246:
20/02/02 13:43:24.73 Rn0kkYyt0.net
>>227
その場合、小数点以下N桁目、あるいは余裕をみて N+4桁目くらいを考えて
10^(N+4) 倍して整数1 と内部表現 10^(N+4) を一対一対応とすれば整合性はとれるのでは?(これを固定小数点といいます)
247:
20/02/02 13:45:56.70 Rn0kkYyt0.net
>>231
10進の1 の内部表現を 10, 10進の2 の内部表現を 20, 10進の3 の内部表現を 30 …、10進の0.1 の内部表現を 1
という固定小数点にすれば、 お金の計算のような演算では十分なのでは?
248:
20/02/02 13:46:58.67 Rn0kkYyt0.net
>>242
まあ五捨五入というのは、よそではあまり聞かないですね
249:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/02 13:56:18 gkoi3ncld.net
値を保持するだけなら何でも良いよ
保持出来るだけの精度が有れば
固定小数点だろうが整数部と小数部だろうが
10進浮動小数点だろうが
BCD整数だろうが
計算の方法、式、丸め方が特殊で
途中の型も特殊だったりする
これに多くの評価が必要
だから
結果の型だけを語るのはトンチンカン
250:デフォルトの名無しさん (ワッチョイ 7d4f-unxX)
20/02/02 14:01:47 nz0OxFB30.net
>>246
一回計算する毎にいちいち2進に戻すのにそんな手間かけるより10進演算器用意する方が効率的ということ
251:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/02 14:06:26 gkoi3ncld.net
手間とか効率とかの問題じゃなくて
値の一貫性の問題
最終的に得る値が整数だとしても
途中の計算精度や丸め方によって誤差が微妙に異なり
結果1円の誤差になりました
じゃダメなの
252:デフォルトの名無しさん (ブーイモ MM0a-Ftjm)
20/02/02 14:11:34 VB3p6sP1M.net
>>238
あんたの言う誤差とは何かね?
253:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/02 14:12:15 gkoi3ncld.net
途中の計算精度があれば良いってわけじゃない
100桁精度でも無限精度でもダメ
決まってるロジック通りの結果を返さなきゃダメ
数値計算と思わない方が良いかも
254:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/02 14:14:53 gkoi3ncld.net
決められてる通りのロジックで返した時の値との差が誤差
誤差は一切許されない
これがお金の計算
255:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/02 14:17:09 gkoi3ncld.net
オンラインゲームも一貫性が必要だったりする
対戦相手と結果が異なってはまずいので
そういう部分では
厳密にCPUでもGPUでも同じ値である必要かある
256:デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
20/02/02 14:17:57 w7N5c9rM0.net
わかったぞ
十進数だと0.5円になるときには四捨五入すると1円になるけど
2進数の時0.4999999999円みたいになった時0円になっちゃうってこと?
257:デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
20/02/02 14:20:40 w7N5c9rM0.net
0.1円の誤差をなくすために0.1円以上掛けたら意味なくない?
258:デフォルトの名無しさん
20/02/02 14:23:22.92 gkoi3ncld.net
1円でも誤差があると帰れない銀行員の話とか知らない?
259:デフォルトの名無しさん
20/02/02 14:24:38.04 w7N5c9rM0.net
日本が異常なだけでしょ?
アメリカとかだと1円払って終わりじゃね?
260:デフォルトの名無しさん
20/02/02 14:30:28.56 gkoi3ncld.net
私が直接話を聞いたのは外資系の銀行員から
261:デフォルトの名無しさん (ワッチョイ 7dda-unxX)
20/02/02 14:32:20 Wawdq7250.net
つまり
10進で計算するのは,10進で計算せよというロジックがあるからであって,循環小数を避けるためではない
ということか
そういうことなら誰も文句ないんじゃね?
262:デフォルトの名無しさん (ワッチョイ b501-0Ybi)
20/02/02 14:37:37 mzCY/+E00.net
URLリンク(ideone.com)
こういうことでは。
263:デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
20/02/02 14:44:42 ceem9FS20.net
>>256
0.5 は、2進数の1/2 だから、割り切れる。
0.25 は、2進数の1/4 だから、割り切れる
だから、0.5 + 0.25 = 0.75 も、2進数で割り切れる
でも、0.1 は循環小数になるから、
0.1 * 5 != 0.5
これは不一致!
情報処理の初級資格の内容w
これを勉強していない人は、プロじゃない!
つまり、お金の計算では、誤差のある浮動小数点演算は使えない!
Decimal を使う
264:デフォルトの名無しさん
20/02/02 14:48:07.68 mzCY/+E00.net
もういいわ。
おまえ等のプログラムじゃ金の計算できないわ。
エクセル使う。
265:デフォルトの名無しさん
20/02/02 14:48:39.82 lNG3EL+m0.net
三人で三等分して、構成比を%で表示しろと言われ、
何も考えずに計算結果出して見せたら、
合計が100%になってないと文句を言われたw
266:デフォルトの名無しさん
20/02/02 15:07:37.05 mzCY/+E00.net
一番上のお姉ちゃんがプリン食べれないやつか。
267:
20/02/02 15:08:31.39 Rn0kkYyt0.net
>>250
>一回計算する毎にいちいち2進に戻すのにそんな手間かけるより10進演算器用意する方が効率的ということ
いいえ、値の保持と計算はずっと 2 進+固定小数点のままで行い、人間に値を見せるときにはじめて 2 進→ 10 進変換を実施します
>途中の計算精度や丸め方によって誤差が微妙に異なり
お金の計算における丸め方法の規則は、四捨五入にしても五捨五入にしても 10 進法整数に親和的なのだから、多桁長表現+固定小数点で表現すればかなり厳密に扱えるとおもいますよ
268:
20/02/02 15:11:06.99 Rn0kkYyt0.net
>>263
>Decimal を使う
Decimal の内部表現方法に興味がありますね、まさか、今でも BCD だとは思えませんが(x86_AMD64 でも関連ニーモニックは消えました)、もしかして?!
269:デフォルトの名無しさん
20/02/02 15:19:29.78 w7N5c9rM0.net
小数点の位置と整数の2つの情報で10進数の少数は誤差なくあらわせるよ
270:デフォルトの名無しさん
20/02/02 15:22:25.38 mzCY/+E00.net
>>269
どうやるんだよ。
271:デフォルトの名無しさん
20/02/02 15:27:54.74 nz0OxFB30.net
>>267
丸めは計算ごとに適用されるんだよ、馬鹿。
272:デフォルトの名無しさん
20/02/02 15:30:01.89 w7N5c9rM0.net
>>270
0.1は1番目に点がある1だから1と1で表せる
273:デフォルトの名無しさん
20/02/02 15:36:23.54 w7N5c9rM0.net
少数点以下の整数と小数点以上の整数でも表せる
274:デフォルトの名無しさん
20/02/02 15:38:49.63 anvSpfnfM.net
機械語なら商と剰余はたいていいっぺんに計算できるけど、Cからそれらの機械語が使われると期待していい書き方ってどうすればいい?
10年来の疑問
275:デフォルトの名無しさん
20/02/02 15:40:29.20 w7N5c9rM0.net
Cのライブラリーにいっぺんに計算されるやつがある
276:デフォルトの名無しさん (ワッチョイ 2a63-unxX)
20/02/02 15:42:13 lNG3EL+m0.net
小数と少数を間違えないで
277:◆QZaw55cn4c (ワッチョイ 0aaa-NwnA)
20/02/02 15:45:20 Rn0kkYyt0.net
>>267
>>いいえ、値の保持と計算はずっと 2 進+固定小数点のままで行い、人間に値を見せるときにはじめて 2 進→ 10 進変換を実施します
>>271
>丸めは計算ごとに適用されるんだよ、馬鹿。
そうか、確かに私にも落ち度がありました、2進整数+固定小数点ならば、丸める桁まで 10 で割り続けて余りを求める必要がありますね、これはほとんど2進→10進変換といっていいですね
しかし、全桁を 2進→10進する必要はなく、丸める桁までで 2 進→ 10 進するだけでいい
x86-AMD64 では 8086 時代の BCD 補正命令は全部なくなってしまったことから考えても、「Decimal」型は整数+小数点位置なんじゃないかな…
278:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/02 16:00:27 SWo7Ruqh0.net
>>252
鳥頭をそのまま返す
すまんが俺は介護人でも保育士でもない
おまえの相手は疲れすぎる
279:デフォルトの名無しさん (ブーイモ MMc9-AfBq)
20/02/02 16:24:08 VqF3mFhWM.net
>>275
ポータブルなやつを頼む
280:デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
20/02/02 16:27:09 w7N5c9rM0.net
>>279
標準ライブラリーだからポータブル
281:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/02 16:40:10 gkoi3ncld.net
>>277
IEEE754にも10進数があるから見てみれば
282:デフォルトの名無しさん (ブーイモ MM0a-Ftjm)
20/02/02 16:50:09 VB3p6sP1M.net
>>278
で、あんたの言ってる誤差ってなんなのさ
説明できないの?
283:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/02 17:00:29 SWo7Ruqh0.net
>>282
説明はもうしたんだよ鳥頭野郎
てめーで過去レス探せ
他のやつにじゃなく
おまえさんにレスアンカーつけて書いたぞ
284:デフォルトの名無しさん (ワッチョイ 2a63-unxX)
20/02/02 17:03:20 lNG3EL+m0.net
円周率は概ね3です
285:デフォルトの名無しさん (ブーイモ MM0a-Ftjm)
20/02/02 17:20:36 VB3p6sP1M.net
>>283
あんたの言ってる誤差は循環小数云々の誤差ということでいいのか?
286:デフォルトの名無しさん (ワッチョイ 1163-6LpL)
20/02/02 17:52:51 8cBiUpXt0.net
盛り上がってるなー。
が、なんか思ったのと違う進行。。
287:デフォルトの名無しさん (ワッチョイ 2a63-unxX)
20/02/02 18:01:39 lNG3EL+m0.net
>>286
軌道修正してくれたまえ
このままでは銀河系脱出してしまう
288:デフォルトの名無しさん
20/02/02 19:18:27.60 825maVGz0.net
>>219
そりゃーC言語よりも古いCOBOLがあるもん
銀行案件は全部そっち任せだろ
だからそういうライブラリを発達させる必要が無かった
COBOL最盛期がいつかは知らんがきっとIBM最高益の時代あたりだろ
289:デフォルトの名無しさん (ワッチョイ 8a1e-7ddI)
20/02/02 20:44:43 F6yWVrL10.net
>>274
普通に書けば最適化してくれる場合もある。
とりあえず gcc -O2 とやってみた。
extern int w,x,y,z;
void foo( void) {
y = w / x;
z = w % x;
}
int bar( int x,int y){ return x / y + x % y;}
290:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/02 20:51:51 gkoi3ncld.net
割り算は遅い
スーパーコンピュータでも遅い
定数の割り算で済む所は定数に
並列化可能ならSIMD命令で複数一気に
291:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/02 20:55:57 SWo7Ruqh0.net
>>285
まあそういうことだ
おまえさんにとっての関心事に関係するかどうかは知らん
さっき言ったとおり、俺は保育士じゃないんで他人ん家の坊ちゃん嬢ちゃんは扱えない
プラレールだかリカちゃんだかの相手はしてられない
292:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/02 20:57:05 SWo7Ruqh0.net
>>290
タンジェントは遅いか?
べき乗は遅いか?
293:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/02 23:53:32 gkoi3ncld.net
タンジェントもべき乗も遅いけど
使う頻度的には割り算より圧倒的に少ないし
見るからに遅そうだから気を付けるだろう
割り算や余りは手軽に使いがちで遅い
例えばSkylakeでは加減乗算の100倍くらいかかる
割り算と余り両方使うなら
以下のように書いた方が良い
c=a/b;
d=a-c*b;
除算命令を2回呼ぶことはなくなるし
bが定数なら乗算に置き換えてくれる
ライブラリだとbが定数でも除算命令を使ってしまうと思う
294:デフォルトの名無しさん
20/02/03 07:43:30.26 0n0692Cx0.net
除算が遅いってのは常識だな
浮動小数点数演算の話だが2回以上同じ数で割るなら逆数を取っておいてそれを掛けろと習ったわ
そもそも浮動小数点数演算が圧倒的に遅いから可能な限り整数型で済ませろとも
295:デフォルトの名無しさん (アウアウクー MM7d-2G11)
20/02/03 08:16:49 vFO4eQ5PM.net
どこでそんなこと習うんだ…
296:デフォルトの名無しさん (ワッチョイ 89b3-x67y)
20/02/03 08:20:37 e9E2NTEb0.net
浮動小数点が圧倒的に遅いかどうかはCPU次第
PCなら速いし
CPUに命令がなければソフトウェア実装になるので遅い
この場合、当然floatよりdoubleの方が遅い
(floatもdoubleも32bitの環境もあるけど)
浮動小数点の割り算は
定数であれば1個でも逆数をかける方が良い
x / [定数] と x * (1.0/[定数])
で値が異なることがあるため、最適化してくれない場合がある
297:デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
20/02/03 08:22:21 m5kUFkC70.net
割り算と余りを一回で計算できる命令がCPUにはあるのよ
298:デフォルトの名無しさん
20/02/03 08:27:41.12 e9E2NTEb0.net
浮動小数点が圧倒的に遅いといっても
使い所では使った方が良い
速度が関係ない所では
無理やり整数演算に直すデメリットの方が多い
>>297
除算が圧倒的に遅いから>>293でもほぼ同じ
定数であることまで考えると>>293の方が良い
299:デフォルトの名無しさん
20/02/03 08:36:20.54 m5kUFkC70.net
割り算が100倍掛かるって嘘じゃない?
調べたら掛け算より少し遅いくらいだけみたいだけど
300:デフォルトの名無しさん (ブーイモ MMc9-BGKF)
20/02/03 09:47:15 x3IhE4UHM.net
浮動小数点の除算はニュートン法使うからそれほど遅くない。乗算の数倍程度。
整数の除算は基本的に高速化できないのでだいぶ遅い。
整数でも定数で除算すると逆数の乗算プラス補正で実装されるので速い。
アセンブリ出させて見てみるべし。
301:デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
20/02/03 11:19:33 m5kUFkC70.net
こんなホームページ見つけた
URLリンク(stackoverflow.com)
302:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/03 12:43:23 jOrmfTQLd.net
instlatx64でSkylakeの64bit命令の
スループットを見ると
IDIVはフルビットで95クロック
ADDは0.33, IMULは1クロック
AVX命令だと乗算や積和も0.5クロック
遅くて使われなくなったFSINが130クロックだから
遅さがわかると思う
コンパイラはなるべくこの命令を使わないで済むように
また使う回数をなるべく減らすよう工夫するんだけど
標準ライブラリの場合はIDIVを無条件で使ってしまう
303:デフォルトの名無しさん
20/02/03 12:49:05.54 jOrmfTQLd.net
浮動小数点だと差はちょっと縮まる
加減乗算と積和は0.5クロック
除算は倍精度スカラーで4クロック、ベクタで8クロック
倍精度浮動小数点の積和演算が4個同時に出来る命令が
毎クロック2個ずつ実行出来るのに
ただの整数除算1個が95クロックもかかる
遅さがわかるでしょ?
304:デフォルトの名無しさん
20/02/03 12:52:56.44 m5kUFkC70.net
100倍掛かるなら100倍時間掛かるはずでしょ
そんなわけ無いじゃん
305:デフォルトの名無しさん (アウウィフ FF21-0Ybi)
20/02/03 13:50:54 62FLJlSTF.net
パイプラインですね判りますω
306:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/03 15:12:48 TXSv3nXz0.net
除算器をパイプライン化することで
スループットは上げられても
レイテンシは変わらないかんな
307:デフォルトの名無しさん (ワッチョイ 2a63-unxX)
20/02/03 15:14:45 XXjF7BB80.net
予測で
308:デフォルトの名無しさん (ワッチョイ 5d35-MzNC)
20/02/04 01:59:00 SgzhJHen0.net
今どき役に立つ場面は少ないけどこういうの楽しいな
309:デフォルトの名無しさん (ワッチョイ 7d01-0Ybi)
20/02/04 06:57:32 j6eziqdx0.net
以下のプログラムのb_testにはなぜ0x3322ではなく、0x4433が代入されるのでしょうか?
#include <stdio.h>
typedef struct
{
unsigned char a;
unsigned short b;
} TEST_2;
int main(void)
{
unsigned char bytes[] = { 0x11, 0x22, 0x33, 0x44 };
TEST_2* pMemoryDevice = (TEST_2*)bytes;
unsigned char a_test = pMemoryDevice->a;
unsigned short b_test = pMemoryDevice->b;
printf("0x%X\n", b_test);
return 0;
}
310:デフォルトの名無しさん (ワッチョイ 151a-unxX)
20/02/04 07:04:32 /MaewKoE0.net
>>309
aliasing rule 違反やアライメント違反の可能性などにより未定義動作なので 0x4433 になるとも限りません。
対象の環境を限定して何が起こっているか知りたいならアセンブリを出力してみるのがいいと思います。
311:デフォルトの名無しさん (ワッチョイ 7d01-0Ybi)
20/02/04 07:14:24 j6eziqdx0.net
>>310
アセンブリ出力してみてみたんですが、そもそもなぜそのようになるのかが疑問です。
この場合、"0x11"がBYTE, "0x22, 0x33"がWORDのバイト配列を構造体で表したい場合どうすればいいのでしょうか?
312:デフォルトの名無しさん (ワッチョイ 89b3-x67y)
20/02/04 07:36:55 CGekWIL20.net
bは2バイトだから2バイト境界になるように詰め物をした
コンパイラやCPUの仕様
313:デフォルトの名無しさん (ワッチョイ 89b3-x67y)
20/02/04 07:38:21 CGekWIL20.net
環境依存
#pragma pack とかコンパイルオプションで
変えられたりする
314:デフォルトの名無しさん (ワッチョイ e5f9-/fp1)
20/02/04 07:49:06 QC3PzamG0.net
>>311
「構造体 パディング」でググって
パディングなしを指示する方法は標準にはないから環境依存
__attribute__ ((packed))とか#pragma pack(1)とか
315:デフォルトの名無しさん
20/02/04 08:03:48.58 j6eziqdx0.net
#pragma pack(1)を使うことによって解決しました!
ありがとうございます。
今まで結構バイト配列を構造体に割り当てるってことをしてきましたが、気づきませんでした、、
316:デフォルトの名無しさん (ブーイモ MMc9-BGKF)
20/02/04 09:27:02 rp8heKByM.net
できるかできないかアーキテクチャ環境依存だし、
できても遅くなる可能性もあるので注意
317:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/04 12:50:10 GNpMFwh2d.net
そもそもunsigned charの配列をキャストしてる時点で
318:デフォルトの名無しさん (ワッチョイ a612-i7CI)
20/02/04 13:04:48 6srsz/DQ0.net
unsigned charの配列をキャストしてる時点で何?
309は構造体の性質を調べる実験をしていて
そのために普段しないことをわざとやってるんだが
319:デフォルトの名無しさん (アウアウウー Sa21-lBRq)
20/02/04 15:53:52 MHG3R7Tga.net
ネットワークやファイルから読んだバイナリの塊を構造体に当て嵌めて解析を楽にするなんてことは、よくやる。
まあ、本当だったらバイナリから読んで構造体側にコピーするような関数を作った方が良いんだろうけどね。(またはPerlのunpackみたいなやつ)。
320:デフォルトの名無しさん (アウアウウー Sa21-lBRq)
20/02/04 16:00:02 MHG3R7Tga.net
そういえばsscanf()と似たような感じでバイナリとフォーマットと可変引数で代入先ポインタ並べて渡すとバイナリ側から読んで値入れてくれるようなPerlのunpack風な関数も作ろうと思えば作れるね。
321:デフォルトの名無しさん (ワッチョイ b67c-unxX)
20/02/04 19:11:16 b7qwiVAD0.net
>>319
それをビットフィールドでやって大失敗したことある
ビットフィールドの並び順がコンパイラ依存なんて知らんかったんや
322:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/04 19:18:36 rvpdgwbCd.net
コンパイラ依存や環境依存はビックフィールドだけじゃない
323:デフォルトの名無しさん (スッップ Sd0a-x67y)
20/02/04 19:18:58 rvpdgwbCd.net
ビットフィールド
324:デフォルトの名無しさん
20/02/04 20:24:28.00 TWTPcweW0.net
あの大事件の裏にはこういうミスが隠されているのか……
325:デフォルトの名無しさん (ワッチョイ 89b3-x67y)
20/02/04 20:31:06 CGekWIL20.net
コロン抜け?
326:デフォルトの名無しさん (ワッチョイ 2a63-unxX)
20/02/04 21:26:03 lLuVC2X20.net
あれはFortranだろ
327:デフォルトの名無しさん (アークセー Sxbd-nHCh)
20/02/04 22:02:12 xaJSTMSvx.net
僕のはリトルエンディアン
328:デフォルトの名無しさん
20/02/04 23:14:03.74 6/2RTZHA0.net
漏れが、新幹線のチケット開発してた時には、ビットフィールドなどは使わなかった
全てのバイト内で、データの位置を決めて、ビット演算でやっていた
329:デフォルトの名無しさん (ササクッテロラ Sp0b-R1hy)
20/02/05 01:10:02 N1gPUNHxp.net
309のb_testの数値ってなぜ0x3344じゃないの?
それすらわからん
ここのスレレベル高いな
330:デフォルトの名無しさん (ワッチョイ 9f63-56gX)
20/02/05 01:21:18 wXMktV7+0.net
>>329
実行環境にもよると思います
331:デフォルトの名無しさん (ワッチョイ 9f63-56gX)
20/02/05 01:26:09 wXMktV7+0.net
>>329
x86系CPUはリトルエンディアン
URLリンク(ja.wikipedia.org)
332:デフォルトの名無しさん (アウウィフ FF9b-VM48)
20/02/05 19:45:58 2rKdW1EcF.net
>>317 みたいなのも居る訳で
333:デフォルトの名無しさん (スップ Sd3f-pfqa)
20/02/05 20:13:44 PZ/5vknBd.net
>>317で何を言おうとしたかわからなかったか
334:デフォルトの名無しさん (スップ Sd3f-pfqa)
20/02/05 20:18:11 PZ/5vknBd.net
キャストしてる時点でアラインメントは
335:デフォルトの名無しさん
20/02/05 23:49:56.70 V2ceD5vC0.net
どんだけかまって欲しいの。
336:デフォルトの名無しさん
20/02/06 06:52:45.18 VEO7DUBt0.net
机上でガタガタ言うだけで満足するやつもいれば
実際に境界違反すると何が起きるのか自分の目で目撃したいやつもいるのさ
俺は後者に共感する
337:デフォルトの名無しさん
20/02/06 07:27:32.13 /W9iMVJD0.net
問題なくアクセス可能
例外発生
ズレてアクセス
性能以外の振舞いこのくらいは経験がある
他にあるかな?
ズレてアクセスされるCPUは
問題が分かりにくく厄介
338:デフォルトの名無しさん
20/02/06 07:35:58.42 /W9iMVJD0.net
机上も重要
CPUのデータシートやコンパイラの説明書は当然見ないと
ズレてるスタックポインタをずらしたまま使う意味とかわからんでしょ
339:デフォルトの名無しさん
20/02/06 08:03:27.48 VEO7DUBt0.net
机上がいらんとは言ってねえよ
何のための机上か考えろということだ
340:デフォルトの名無しさん
20/02/06 08:08:22.76 h/xvakBVd.net
ビットフィールドって環境依存なのか
分かりやすくて良いのに…
341:デフォルトの名無しさん
20/02/06 14:31:03.01 /W9iMVJD0.net
構造体自体環境依存
342:デフォルトの名無しさん (ワッチョイ d735-oJhu)
20/02/06 19:36:45 OKCzzxK90.net
>>334
アライメントは何?
343:デフォルトの名無しさん
20/02/06 21:11:00.88 yuUE1QQrM.net
定義しただけじゃ構造体のアライメントを算出してくれないコンパイラがあるんだなー
union { ;static{ al,ah;ググってて遭遇ちょっと新鮮な驚き
実体を作らず、ポインタキャストでのみ利用してっとグチャゲチャなアドレスを引っ張ってくるみたいな
344:デフォルトの名無しさん
20/02/07 17:54:26.07 flffdOy2M.net
AAと出力されて欲しいのですがなぜ4バイトになるのでしょうか
URLリンク(ideone.com)
345:デフォルトの名無しさん
20/02/07 18:46:29.60 ZbQSjjsiM.net
charを引数として渡すとintに格上げされる。
charがこの環境ではsigned charらしいので、0xAAはマイナス扱いされる。
intに格上げするときに符号拡張されて上位24ビットが1で埋められる。
346:デフォルトの名無しさん
20/02/07 19:07:15.66 OIss2gZ6M.net
>>345
ありがとうございます
そもそもunsignedつけ忘れてました
347:デフォルトの名無しさん
20/02/07 19:12:45.37 2Fs88HW00.net
こうする、とか
printf("%0X\n", *(unsigned char*)u);
printf("%0X\n", (unsigned char)u[0]);
348:デフォルトの名無しさん
20/02/07 19:54:01.80 loJf6Qnv0.net
なんもわかってなくて草
349:デフォルトの名無しさん
20/02/07 22:52:47.29 GxNDg+Fe0.net
実務経験1年で月収80万稼げるエンジニアになった理由
URLリンク(www.youtube.com)
意識が低いエンジニアこそフリーランスになれ
URLリンク(www.youtube.com)
フリーランスエンジニアの週3労働ってどんな感じ?
URLリンク(www.youtube.com)
ぼくがスキルのない社畜ならこうやって脱する
URLリンク(www.youtube.com)
初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話
URLリンク(www.youtube.com)
プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説
URLリンク(www.youtube.com)
貧乏人こそ社会不適合者
URLリンク(www.youtube.com)
元ド貧乏が教える】貧乏を抜け出すための2つの考え方
URLリンク(www.youtube.com)
より良いオファー貰ってるのに転職しないとか何考えてるの?
URLリンク(www.youtube.com)
350:デフォルトの名無しさん (ワッチョイ 9f52-m0mG)
20/02/08 01:58:07 uvgcwZ2m0.net
>>349
グロ
351:デフォルトの名無しさん (ワッチョイ ff8f-mb93)
20/02/10 02:19:19 VQtOVB2v0.net
質問させてください。
ある.dllを作成するCのプロジェクトがあるのですが、開発環境をeclipseからvisualstudioへ移行しました。
このdllを使用する別のCのプロジェクトがあるのですが、eclipseでビルドしたdllは使用できていたのですが、visualstudioでビルドしたdllを使用しようとすると未解決エラーでビルドできなくなってしまいました。
作成した.libファイルをdumpbinで確認すると、eclipseでビルドしたものには関数名にいろいろ装飾(@とかcdeclとか引数とか)がついているのですが、visualstudioでビルドしたものには装飾がついていませんでした。
この違いが原因だとは思うのですが、visualstudioでも関数名に装飾がついたlibファイルを作成するにはどうすればよいのでしょうか?
352:デフォルトの名無しさん (ワッチョイ ff8f-mb93)
20/02/10 03:14:01 VQtOVB2v0.net
>>351ですが、dllを使用する側のプログラムに「c++コードとしてコンパイル」を設定していたせいで読み込めなくなっていることがわかりました。
質問内容についても、CとC++の違いについて調べていけば良さそうとわかったので、自力で調べてみようと思います。
ありがとうございました。
353:デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
20/02/10 16:25:12 TGcYvj29F.net
回答しようと思ったけど自己レスが付いていたので控えます。
自分で調べて下さい。良い心がけです。
354:デフォルトの名無しさん (ラクッペ MMcb-oJhu)
20/02/10 17:30:05 sdl18RcGM.net
ゴミレスすんな
355:デフォルトの名無しさん
20/02/11 03:20:33.73 ShQqPfw10.net
>>352ですが解決しました。
c++ではマングリングが行われるためソースコード上の関数名とコンパイル後の関数名が異なる
一方cコードとしてコンパイルしたライブラリはソースコード上の関数名がそのままコンパイル後の関数名になる
この違いが原因で、c++コードとしてコンパイルされた呼び出し側プログラムではライブラリの関数を参照できなくなってしまっていました
解決策はc++側の関数宣言にextern "c"をつけること。もちろんヘッダーファイルなのでinclude文をextern "c"で囲んでしまうことでした。
たまに見かけるextern "c"ってこういうことだったんですね。お騒がせいたしました。
356:デフォルトの名無しさん
20/02/11 07:41:04.94 KT61u4Oq0.net
マンデリングってえろいよね
357:デフォルトの名無しさん
20/02/11 07:47:01.07 lXsf9fbVd.net
ポンデリング
358:デフォルトの名無しさん (アウアウウー Sac3-Oc5d)
20/02/14 20:51:49 OVlsC64Va.net
うまいよね
359:デフォルトの名無しさん (ワッチョイ d2c5-GUQA)
20/02/14 20:52:25 x/oqiD9H0.net
おいC
おいCぺろぺろ
360:デフォルトの名無しさん
20/02/15 07:15:19.12 AzMEQbXZ0.net
>>355
extern "c" ではなく
extern "C" 大文字だぞ
それがわかってないのに、よく解決できたな
361:デフォルトの名無しさん (ラクッペ MM97-2rLz)
20/02/15 09:05:57 G4DtF/s2M.net
亀レスなうえにそのツッコミてw
362:デフォルトの名無しさん
20/02/15 20:35:31.35 4O8uAQVX0.net
おれvalgrindと結婚するんだ
363:デフォルトの名無しさん
20/02/16 16:37:12.41 e+hZCGM40.net
そしてフラグが立つと
364:デフォルトの名無しさん (ワッチョイ df01-oncu)
20/02/18 02:06:40 tIozcGEh0.net
#if defined
365:デフォルトの名無しさん
20/02/19 12:02:30.63 /eqfvSaW0.net
C言語関係ないんだけど、並行処理と並列処理ってさ
論理的にシミュレートするのが並行処理で、物理的にパソコンを二台並べるのが並列処理だよね?
並行と並列と混合してる記事がネットに多くてもやもやするんだけど
366:デフォルトの名無しさん
20/02/19 12:03:31.56 cGULNOoWF.net
違う
367:デフォルトの名無しさん
20/02/19 12:11:00.93 /eqfvSaW0.net
>>366
どこら辺が間違ってます?
368:デフォルトの名無しさん
20/02/19 12:17:49.87 pLtxXQrp0.net
>>365
だいたいあってる
369:デフォルトの名無しさん
20/02/19 12:21:53.17 26AgvMdu0.net
>>365
合ってる
ユニプロセッサでプリエンプティブは並行処理
並列は小学校で習う乾電池のつなぎ方みたいなもん
370:デフォルトの名無しさん (ワッチョイ ffc5-IdAT)
20/02/19 13:02:11 /eqfvSaW0.net
>>368
>>369
合ってますよね
ネットの記事っていい加減だな
371:デフォルトの名無しさん (スップ Sd1f-frFT)
20/02/19 13:08:12 S1r33x/od.net
厳密な境目なんて無いと思う
372:デフォルトの名無しさん (ラクッペペ MM7f-zycr)
20/02/19 13:19:09 UeS2uiZKM.net
つまり別々のcpuなら並列でそうでなければ平行ってこと?
373:デフォルトの名無しさん (アウアウウー Sae7-xY2O)
20/02/19 14:13:39 7brGlgjia.net
二股かけるのが平行処理、3Pでやるのが並列処理であってる?
374:デフォルトの名無しさん
20/02/19 15:19:50.59 rnMFG2oOM.net
>>373
二股は平行ですらないただのシングルスレッド処理じゃないか?
375:デフォルトの名無しさん
20/02/19 17:01:59.51 9MnW04fvM.net
いや、それぞれは相手を独占しているつもりなので、並行。(平行じゃないよ)
376:デフォルトの名無しさん
20/02/19 17:04:57.92 xJfuBtj10.net
二股はデッドロックで行き詰まる
377:デフォルトの名無しさん (ワッチョイ a34f-Nz9x)
20/02/19 20:05:25 ohbwSroQ0.net
並列と並行を明確に区別する流儀と、同時並行に実行されるなら全部並列、という流儀に別れていると思う。
378:デフォルトの名無しさん (ワッチョイ ffc5-IdAT)
20/02/19 20:17:02 /eqfvSaW0.net
解釈が二通りあると?
それは問題では
議論できないじゃん
379:デフォルトの名無しさん (ワッチョイ cff7-Nz9x)
20/02/19 20:28:48 26AgvMdu0.net
性能的に全然違うんだが
時に数千倍も
380:デフォルトの名無しさん (スップ Sd1f-frFT)
20/02/19 20:55:03 SK5VFny8d.net
>>378
議論出来るように具体的に語れば良いんだよ
381:デフォルトの名無しさん (スップ Sd1f-frFT)
20/02/19 20:57:19 SK5VFny8d.net
そもそも同時かどうかなんて区別出来ない、区別しても意味がない事が多い
1コアで複数スレッド動くのはどっち?
とか
382:デフォルトの名無しさん (ワッチョイ 6f8c-L8iH)
20/02/19 20:59:46 AEvYKzFT0.net
クラウドとクラスタ?
383:デフォルトの名無しさん (ワッチョイ e31d-CqDg)
20/02/19 21:35:58 HsCXonKI0.net
【収益報告】実働月10hでも大金稼ぐ方法を解説【年収6,000万】
URLリンク(www.youtube.com)
年収3000万円以上になってはじめて理解すること【拝金からの脱却】
URLリンク(www.youtube.com)
貧乏人に発言権とかないからwww
URLリンク(www.youtube.com)
【日常】実働20hで700万円稼ぐインフルエンサーの生活を公開
URLリンク(www.youtube.com)
皆正しいと思ってるけど実は間違ってる上司のクソ発言5選
URLリンク(www.youtube.com)
月収700万円の僕が大学生のうちに身につけておきたかったスキル4選
URLリンク(www.youtube.com)
384:デフォルトの名無しさん (ワッチョイ 83f9-IdAT)
20/02/19 22:29:58 fef8YCm90.net
並んで行くのが並行
列が並んでいるのが並列
なんでTSSは並行なの?並列じゃダメなの?
なんでデュアルコアは並列なの?並行じゃダメなの?
385:デフォルトの名無しさん (ワッチョイ cf8f-zycr)
20/02/19 23:45:11 i+U4mRBo0.net
とりあえずこういう時は日本語で考えるのやめようぜ。並列も並行も海外で生まれた概念を翻訳しただけなのでそのまま考えると帰って混乱する。
concurrentは同時。これは時間的な概念。
parallelは並存。これは物理的な概念。
つまり同時に処理するものはなんでもconcurrentな処理と言っていいわけだけど、その中でも処理するcpuも別れてるものがparallelな処理。
386:デフォルトの名無しさん (ワッチョイ 83f9-IdAT)
20/02/20 10:12:07 znahik0W0.net
>>385
TSSはconcurrentだけどparallelじゃない(ミクロにみればconcurrentでもない)
デュアルコアはparallelだしconcurrentでもある
でいい?
「TSSは並行、デュアルコアは並列」の使い分けを肯定しないってことでいいのかな
387:デフォルトの名無しさん
20/02/20 10:53:44.93 yQ1/Uz2n0.net
TSS? 全然関係ないぞ
ユニプロセッサの場合CPUは並行処理で動くが
端末やチャネルは並列だ
マルチプロセッサでもTCASにCPUアフィニティがかかっている場合まであるしな
388:デフォルトの名無しさん (スップ Sd1f-frFT)
20/02/20 11:39:06 qJHTNx44d.net
ここで定義をまとめても会話する人全員が共有しないと意味がない
誤解の可能性があるなら
「平行」「並列」なんて言葉に頼らず
具体的に語らないと
389:デフォルトの名無しさん (ドコグロ MM1f-P13C)
20/02/20 12:04:59 2rLj+nIZM.net
>>387
TSSでチャネルガーとか頭おかしいのか?
そんなこと言い出したらPCレベルでもシングルプロセッサ、シングルコア、シングルプロセスでもIOが複数同時動作とかあるだろw
390:デフォルトの名無しさん
20/02/20 13:30:18.30 MjOQHpIxM.net
>>385
これ見て納得した。並行と並列って翻訳した人が戦犯だな。
391:865
20/02/20 13:47:06.99 naozblCad.net
>>389
だから、そうだよ?
392:デフォルトの名無しさん (ワッチョイ 7353-Nz9x)
20/02/20 16:04:59 yQ1/Uz2n0.net
>>389
失礼なやつだな
でTSSと並行並列は関係あるとでも言いたいのか?
そうでもなく喧嘩売ってくるやつこそクルクルパーにしか見えんぞ
393:デフォルトの名無しさん
20/02/20 16:13:55.60 yRc9LKeD0.net
喧嘩を買う人が出てきました
394:デフォルトの名無しさん
20/02/20 19:00:10.65 2rLj+nIZM.net
>>391
理解したら引っ込んでたら?
>>392
で、チャネルがどうしたって?
知ったかするならもうちょっと勉強しないと恥かくだけだぞw
395:デフォルトの名無しさん
20/02/20 19:00:52.93 Pb7WanUc0.net
何だこの煽りカス
396:デフォルトの名無しさん
20/02/20 20:47:43.91 znahik0W0.net
TSSは関係無いの?
>369の
>ユニプロセッサでプリエンプティブは並行処理
ってTSSのことじゃないの?
並行/並列、concurrent/parallelはどっちでもいいよ
単語を置き換えてるだけだ
>365は"「TSSは並行、デュアルコアは並列」と使い分けるもんだ"と言ってるように見える
>368,369はそれを肯定してる
それ本当かなぁどの程度浸透してるのかなぁ、って興味があるだけ
397:デフォルトの名無しさん
20/02/20 21:41:18.48 yQ1/Uz2n0.net
>>396
time shareing systemをそのままプリエンプティブと読んでいるのか?
TSSといえばダム端末多数台のマルチユーザーシステムのことなんだが
398:デフォルトの名無しさん (ワッチョイ 83f9-IdAT)
20/02/20 22:37:15 znahik0W0.net
今俺の興味はそこにはないからどうでもいいんだけどさ
URLリンク(www.google.com)
その定義のみしかないわけじゃないみたいだよ
単に時分割の意味で使ってたよ
そう読み替えてくれ
399:デフォルトの名無しさん
20/02/20 23:22:33.12 zL7x3NPI0.net
>>397
> TSSといえばダム端末多数台のマルチユーザーシステムのことなんだが
知識が狭すぎる
ってか今時それしか思いつかないとか老害か?
400:デフォルトの名無しさん (ワッチョイ ff63-Nz9x)
20/02/20 23:28:24 yRc9LKeD0.net
>>399
定義が間違えているなら、正しい定義を示さないと
401:デフォルトの名無しさん (ワッチョイ ff01-P13C)
20/02/21 04:53:44 XhV4Z+GJ0.net
>>400
誰も間違えてるなんて言ってないし、一つ上のレスすら見てないのか?w
402:デフォルトの名無しさん (ワッチョイ 7353-Nz9x)
20/02/21 07:42:26 ZYgKzVvr0.net
>>396
マルチプロセッサでプリエンプティブはどっちだと思う?
当たり前だがTCASはユニでもマルチでも動くんだが
それでもTSSは並列なのか並行なのかって気になるのか?
どっちでもいいって主張には賛成しかねるな
>>398
「複数のユーザー」、「複数の利用者」と至る所に書いてあるね
ダム端末は確かに昔のことだが並行か並列かという話には関係ない
「頭がおかしい」、「老害」、「知ったか」
どうも前スレあたりから変なのが常駐してるようだな
うっかり構わないように気をつけなきゃ
403:デフォルトの名無しさん
20/02/21 08:05:59.84 UH7lBBhFM.net
パンじゃないご飯だ
404:デフォルトの名無しさん (ワッチョイ ff63-Nz9x)
20/02/21 10:36:09 cj7D2uI00.net
「頭がおかしい」、「老害」、「知ったか」
どうでも良いが、これを連呼したい奴が常住しているようだ
405:デフォルトの名無しさん (アウアウウー Sae7-6k5J)
20/02/21 11:37:48 TKnLlA6xa.net
頭がおかしい知ったかのクルクルパーの老害ですが、呼びましたか?
406:デフォルトの名無しさん
20/02/21 12:23:48.46 GK8/JCh9M.net
>>402
> ダム端末は確かに昔のことだが並行か並列かという話には関係ない
だからその定義だと関係ないとしても、TSSの定義はそれだけじゃないでしょ
話の流れから見てダム端末とかチャネルとか言い出す方が狭すぎって話な
> どうも前スレあたりから変なのが常駐してるようだな
自己紹介乙w
407:デフォルトの名無しさん (スッップ Sd1f-frFT)
20/02/21 12:35:39 7cfLckFcd.net
おまいらスレタイ
408:デフォルトの名無しさん (アウアウウー Sae7-6k5J)
20/02/21 18:13:41 TKnLlA6xa.net
С言語
409:デフォルトの名無しさん (ワッチョイ ff63-Nz9x)
20/02/21 18:18:26 cj7D2uI00.net
C言語は 「頭がおかしい」、「老害」、「知ったか」 な人が使う言語
であってますか?
410:デフォルトの名無しさん
20/02/21 19:15:01.45 TKnLlA6xa.net
クルクルパーもよろしく