!extend:checked:vvvvv:1000:512
↑
次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。
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言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 149
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ af9f-7TBo)
2018/10/28(日) 22:01:44.38ID:D9Gt7gmT0777デフォルトの名無しさん (アウアウウー Sa9d-KJeM)
2019/01/07(月) 21:58:59.48ID:fnTlHl64a >>768
それだけでなく本当にCだけではできない事があるのが普通だ。CPUにもよるけどね。
何か特定のレジスタに値をセットしないと何かの機能が使えないみたいな場合はCではレジスタの指定をして値をセットすることができないので最低でもその部分だけインラインアセンブラにしたり全部アセンブラで書いたりする(またはそれ用に拡張がされたCコンパイラを使う)。
その他、80系やx86系ってI/Oポートあるが、あれはCからはアクセスできないのでその部分はアセンブラにする。
まあしかしそういうのはほとんどデバイスドライバの中で必要になる事なので普通は一般ユーザは考えなくてもよくなっている。
それだけでなく本当にCだけではできない事があるのが普通だ。CPUにもよるけどね。
何か特定のレジスタに値をセットしないと何かの機能が使えないみたいな場合はCではレジスタの指定をして値をセットすることができないので最低でもその部分だけインラインアセンブラにしたり全部アセンブラで書いたりする(またはそれ用に拡張がされたCコンパイラを使う)。
その他、80系やx86系ってI/Oポートあるが、あれはCからはアクセスできないのでその部分はアセンブラにする。
まあしかしそういうのはほとんどデバイスドライバの中で必要になる事なので普通は一般ユーザは考えなくてもよくなっている。
778デフォルトの名無しさん (アウアウウー Sa9d-KJeM)
2019/01/07(月) 22:02:17.91ID:fnTlHl64a779デフォルトの名無しさん (ワッチョイ 2b7c-xhm2)
2019/01/07(月) 22:31:49.44ID:VIu/Fipc0 >>778
XOR使おうぜ
XOR使おうぜ
781デフォルトの名無しさん (ワッチョイ d901-b7+Q)
2019/01/07(月) 23:02:03.29ID:HO7xoVU80 LD は ゼロやキャリーフラグ変化するんだっけ?
782デフォルトの名無しさん (ワッチョイ 6992-4tJW)
2019/01/07(月) 23:06:04.57ID:JlpUfKel0 オムニバースを解析するソフトウェアを開発するにはどうすれば良いですか?
783デフォルトの名無しさん (ワッチョイ 8b63-xhm2)
2019/01/07(月) 23:11:49.25ID:ArcgbVcT0784デフォルトの名無しさん (ワッチョイ 8bf2-NR1r)
2019/01/07(月) 23:51:44.52ID:4vLmnBNE0 >>780
76
76
>>783
>286では戻れずに、不便だったけど
通説ではそうなんですが、「実は…」という話があった気がします、そのため「だけ」に 286機を確保していたつもりだったのですが、うっかり捨ててしまった、やりたかったことを今思い出してしまった…
>286では戻れずに、不便だったけど
通説ではそうなんですが、「実は…」という話があった気がします、そのため「だけ」に 286機を確保していたつもりだったのですが、うっかり捨ててしまった、やりたかったことを今思い出してしまった…
786デフォルトの名無しさん (ワッチョイ 8b63-xhm2)
2019/01/08(火) 00:17:51.75ID:oEiIhl5B0 NECのPC98での話ですが、プロテクトモードとリアルモードを行き来するのに
リセットで実装していたと聞きました(死中に活ありみたいな感じ)。
「実は・・・」って話は知らないw
リセットで実装していたと聞きました(死中に活ありみたいな感じ)。
「実は・・・」って話は知らないw
787デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/08(火) 07:38:36.71ID:iKVSkTiF0 >>785
0F 05 LOADALL
0F 05 LOADALL
788デフォルトの名無しさん (ワッチョイ 13d2-mHCk)
2019/01/08(火) 07:56:15.99ID:hvlZBAYo0 なんか286はPC用じゃなく工業製品用を想定して設計されてたって記事読んだ記憶が。
789デフォルトの名無しさん (ワッチョイ d352-JBiS)
2019/01/08(火) 08:00:10.01ID:3ZWgvjCS0 さあ、C言語の話をしようか。
790デフォルトの名無しさん (アークセー Sxc5-mE+R)
2019/01/08(火) 10:13:36.31ID:qFTAFG9Fx 昔から疑問なんだけど、マップドIO制御を除いてC言語だけでRTOSのカーネルは書けるのだろうか?
タスク同士のシステムコール発行によるプリエンプトはsetjmp/longjmpで何とかなりそうだけど、割り込みハンドラからのシステムコールによるタスクディスパッチは何をどうあがいてもスタックポインタの直接書き換えが必要な気がしてならない。
タスク同士のシステムコール発行によるプリエンプトはsetjmp/longjmpで何とかなりそうだけど、割り込みハンドラからのシステムコールによるタスクディスパッチは何をどうあがいてもスタックポインタの直接書き換えが必要な気がしてならない。
791デフォルトの名無しさん (JP 0H95-OLjn)
2019/01/08(火) 10:40:29.19ID:qjoMs7mdH ハンドラ内でsetjmpしたらどうなるんだろう
792デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/08(火) 11:39:30.49ID:iKVSkTiF0 CだけでOSなんて、Cは元々そういう使い方を想定していない
実際UNIXは5%がアセンブラだった
特権命令は誰か言っていたとおりだし
PCとSPのようなCが前提にしているものの初期化をCでは絶対に書けない
実際UNIXは5%がアセンブラだった
特権命令は誰か言っていたとおりだし
PCとSPのようなCが前提にしているものの初期化をCでは絶対に書けない
793デフォルトの名無しさん (ワッチョイ 6900-DsDM)
2019/01/08(火) 13:48:48.48ID:we27gJDs0 でも最近のUEFIとかなら全部Cで書かれたOSでも起動できそうだけどね。
794デフォルトの名無しさん (オイコラミネオ MM95-hx//)
2019/01/08(火) 16:18:38.83ID:rMmlRXYeM C言語を一番最初に学んで、C++、ほかスクリプト言語と使っているが、C言語で文字列処理ライブラリーってみんなどうしてる?
C++ だとboost C++ とかいろいろなライブラリがあって、オープンソースだったり商用利用できたり、物によってはGPLだったりするけど、そういうのに相当するC言語の文字列処理ライブラリってある?
各自で作りためたオレオレライブラリをみんな使ってるの??
C++ だとboost C++ とかいろいろなライブラリがあって、オープンソースだったり商用利用できたり、物によってはGPLだったりするけど、そういうのに相当するC言語の文字列処理ライブラリってある?
各自で作りためたオレオレライブラリをみんな使ってるの??
7950794 (オイコラミネオ MM95-hx//)
2019/01/08(火) 16:22:15.64ID:rMmlRXYeM つまり今から俺が自分用に文字列処理ライブラリ(独りよがりのオレオレライブラリ)を作る意味があるのか、俺が知らないだけでboostみたいに出来合いの洗練されたライブラリがあるのか…な…?
Pythonとかは言語仕様で十分複雑なことが出来るし、ホントC言語だけなんでこんな毎回面倒な目に合うのだろう。
Pythonとかは言語仕様で十分複雑なことが出来るし、ホントC言語だけなんでこんな毎回面倒な目に合うのだろう。
796デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/08(火) 16:37:12.54ID:iKVSkTiF0 Cを修行中ならオレオレライブラリを作ることにも充分に意味がある
既製品を使うことしかできないくせに天狗になってるやつが時々いる
使っているライブラリがオレオレか既製品かといった手段ではなく
知的な旅でどこへ行けたかが問題であることを見失うな
既製品を使うことしかできないくせに天狗になってるやつが時々いる
使っているライブラリがオレオレか既製品かといった手段ではなく
知的な旅でどこへ行けたかが問題であることを見失うな
797デフォルトの名無しさん (アウアウウー Sa9d-KJeM)
2019/01/08(火) 16:56:52.52ID:LJT6VvGba 俺はboostを知らない。
Cではあまり複雑な文字列処理を書かないしな。
複雑なのはPerl使ったりする。
Cではあまり複雑な文字列処理を書かないしな。
複雑なのはPerl使ったりする。
798デフォルトの名無しさん (オイコラミネオ MM95-hx//)
2019/01/08(火) 18:11:31.32ID:rMmlRXYeM みんなありがとう
Cは全然修行中なわけではなく、別に必要にも迫られてない(C++もPythonも使える恵まれた環境)
ただ必要になったとき、みんなどーしてんだろうと。
C言語で文字列処理なんてするシチュエーションが少ない、とかかな。
初めてPython使ったときは感動した。簡単すぎて。C++では修行中に文字列処理ライブラリとかオレオレライブラリ作成やってみたけど、できあがった物がどう見てもboostの下位互換で悲しかった。
だからC言語で良いライブラリがあったら知っておきたいと思ったんだ。
Cは全然修行中なわけではなく、別に必要にも迫られてない(C++もPythonも使える恵まれた環境)
ただ必要になったとき、みんなどーしてんだろうと。
C言語で文字列処理なんてするシチュエーションが少ない、とかかな。
初めてPython使ったときは感動した。簡単すぎて。C++では修行中に文字列処理ライブラリとかオレオレライブラリ作成やってみたけど、できあがった物がどう見てもboostの下位互換で悲しかった。
だからC言語で良いライブラリがあったら知っておきたいと思ったんだ。
799デフォルトの名無しさん (ワッチョイ 2b7c-xhm2)
2019/01/08(火) 18:41:54.19ID:MwaFnBBQ0800デフォルトの名無しさん (JP 0H95-OLjn)
2019/01/08(火) 19:47:06.06ID:qjoMs7mdH >>795
glibとか?
glibとか?
801デフォルトの名無しさん (ワッチョイ 7be9-uFMA)
2019/01/08(火) 22:16:50.19ID:BZbwJw/70 ちょっとすみません
gccの最適化オプションの-O2を使った場合に動作がおかしくなったりすることはありますか?
gccの最適化オプションの-O2を使った場合に動作がおかしくなったりすることはありますか?
802デフォルトの名無しさん (ワッチョイ 8b63-xhm2)
2019/01/08(火) 22:19:56.62ID:oEiIhl5B0 あるかもしれないし、ないかも知れない
そういうソースがあるなら、晒して皆に確かめてもらえ
そういうソースがあるなら、晒して皆に確かめてもらえ
803デフォルトの名無しさん (アウアウカー Sa55-khkO)
2019/01/08(火) 23:00:38.10ID:E9NMc6wba804デフォルトの名無しさん (ワッチョイ 7be9-uFMA)
2019/01/08(火) 23:28:52.41ID:BZbwJw/70805デフォルトの名無しさん (ワッチョイ 7be9-uFMA)
2019/01/08(火) 23:31:24.43ID:BZbwJw/70 >>803
volatileというものに気を付けないといけないわけですか
volatileというものに気を付けないといけないわけですか
806デフォルトの名無しさん (ワッチョイ d352-JBiS)
2019/01/08(火) 23:45:28.12ID:3ZWgvjCS0 >>804
仕様上規定されていない部分は最適化によって挙動が変わることがある。だから不確定な処理や誤った処理を書いていた場合に、これまでたまたま上手く動くコードが生成されていただけで、最適化によって挙動が変わってバグが顕在化することがある。
例えば、評価順序が不確定な処理を書いていたのがたまたま期待通りの順序で実行するコードになっていただけとか、不正なアドレスのメモリを参照や更新してしまっていたがたまたま問題がなかっただけだったとか。
仕様上規定されていない部分は最適化によって挙動が変わることがある。だから不確定な処理や誤った処理を書いていた場合に、これまでたまたま上手く動くコードが生成されていただけで、最適化によって挙動が変わってバグが顕在化することがある。
例えば、評価順序が不確定な処理を書いていたのがたまたま期待通りの順序で実行するコードになっていただけとか、不正なアドレスのメモリを参照や更新してしまっていたがたまたま問題がなかっただけだったとか。
>>803
volatile は一切使わないことにしました…
volatile は一切使わないことにしました…
808デフォルトの名無しさん (ブーイモ MMdd-OLjn)
2019/01/09(水) 00:28:20.37ID:QEOONCVCM volatileにすべきところでしないから最適化でバグるんだよ
>>808
volatile すべきところ、って具体的にどういうところですか?それは本当に volatile にする必要があるのですか?
volatile すべきところ、って具体的にどういうところですか?それは本当に volatile にする必要があるのですか?
810デフォルトの名無しさん (ブーイモ MMdd-OLjn)
2019/01/09(水) 01:08:46.29ID:QEOONCVCM811デフォルトの名無しさん (ワッチョイ 7be9-uFMA)
2019/01/09(水) 02:45:48.52ID:cump+mlU0 >>806
ありがとうございます
そうであれば不確定な部分がなければバグはでないということですね
最適化用にプログラムの書き方も変える必要があるのかと思っていました
volatileはライブラリの中で使っていそうですがきっと大丈夫でしょう
ありがとうございます
そうであれば不確定な部分がなければバグはでないということですね
最適化用にプログラムの書き方も変える必要があるのかと思っていました
volatileはライブラリの中で使っていそうですがきっと大丈夫でしょう
>>810
個人的には、memory-maped な世界はよくしらない(インテル系しかしらない…).
shared memory って、特別なことはありましたっけ?マルチスレッドなら排他処理用のオブジェクト(pthread-mutex/cond)を使っておれば問題ないし、fork() の中と外で同じ変数をつつくときは…はて、どうしてたっけ?
個人的には、memory-maped な世界はよくしらない(インテル系しかしらない…).
shared memory って、特別なことはありましたっけ?マルチスレッドなら排他処理用のオブジェクト(pthread-mutex/cond)を使っておれば問題ないし、fork() の中と外で同じ変数をつつくときは…はて、どうしてたっけ?
813デフォルトの名無しさん (ワッチョイ fb02-cuFO)
2019/01/09(水) 03:28:53.85ID:T8HUoC+c0 そういやvolatileってC言語の場合CPUによってはうまく行かない事がありうるのな。
例えば4バイトの整数にアクセスするとして、そのCPUが2バイトづつしか読み書きできなかったら必ず2回のアクセスになる。
すると上位バイトと下位バイトで取得した時間が違っていたり一度に4バイト全体の内容を書き換えられない。
例えば4バイトの整数にアクセスするとして、そのCPUが2バイトづつしか読み書きできなかったら必ず2回のアクセスになる。
すると上位バイトと下位バイトで取得した時間が違っていたり一度に4バイト全体の内容を書き換えられない。
815デフォルトの名無しさん (ワッチョイ 8b2c-otaJ)
2019/01/09(水) 04:49:03.78ID:/QFmT4Vc0 マイコンなどのIO アドレスを、PC 側のメモリのアドレスに関連付けているのだろう(Memory-mapped I/O)。
これで、PC側のアプリでは、PCのメモリを読み書きするだけで、マイコンの操作ができる
PC側のメモリを読むと、マイコン側のメモリから読み込む。
読み込むと、マイコンの電圧が変わって、値が不定か逆などになる
通常は、pull up, pull down 抵抗などで、5V・0V にしているけど、
閾(しきい)値(Threshold)があって、
例えば、1V以下なら0V、4V以上なら5Vと判定される場合、1〜4Vは、不定になる
まあとにかく、読み込むだけで電圧が変わる・リセットされるから、
読み込むだけでも、電圧の状態が変わる
だから、IOアドレスを読むだけでも意味がある・状態を変えているので、
コンパイラで最適化・省略してほしくない!
これで、PC側のアプリでは、PCのメモリを読み書きするだけで、マイコンの操作ができる
PC側のメモリを読むと、マイコン側のメモリから読み込む。
読み込むと、マイコンの電圧が変わって、値が不定か逆などになる
通常は、pull up, pull down 抵抗などで、5V・0V にしているけど、
閾(しきい)値(Threshold)があって、
例えば、1V以下なら0V、4V以上なら5Vと判定される場合、1〜4Vは、不定になる
まあとにかく、読み込むだけで電圧が変わる・リセットされるから、
読み込むだけでも、電圧の状態が変わる
だから、IOアドレスを読むだけでも意味がある・状態を変えているので、
コンパイラで最適化・省略してほしくない!
816デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/09(水) 05:40:56.66ID:4Rn8lGBj0 >>815
volatileと一切何の関係もねえし
volatileと一切何の関係もねえし
817デフォルトの名無しさん (ワッチョイ 997b-2hSR)
2019/01/09(水) 07:03:03.74ID:nmJLIVr10 いや、「Cのプログラムで変数(あるアドレス)を読むことが、
ハードウェア的には状態リセットの操作になっているから、
読めと指示した場所で必ず読み取り動作を行って欲しい」だから、
volatileの使い方のひとつとして正当でしょ。
ハードウェア的な内幕の説明が少々ぎごちない気がするけどね。
ハードウェア的には状態リセットの操作になっているから、
読めと指示した場所で必ず読み取り動作を行って欲しい」だから、
volatileの使い方のひとつとして正当でしょ。
ハードウェア的な内幕の説明が少々ぎごちない気がするけどね。
818デフォルトの名無しさん (アークセー Sxc5-mE+R)
2019/01/09(水) 07:55:50.33ID:YaNn8N94x >>813
多バイトアクセスがatomicに行われないのはvolatileの守備範囲ではなくinterlockの守備範囲。
なのでCPUによってはvolatileがうまく行われないってのはvolatileに対する名誉毀損になる。
多バイトアクセスがatomicに行われないのはvolatileの守備範囲ではなくinterlockの守備範囲。
なのでCPUによってはvolatileがうまく行われないってのはvolatileに対する名誉毀損になる。
819815 (ワッチョイ 8b2c-otaJ)
2019/01/09(水) 08:02:53.56ID:/QFmT4Vc0 マイコンなどのIO アドレス(port)を読み書きするには、その装置の手順が決まっている
まず、制御ポートに、読み込むポート番号を教える。
そこで装置を制御できるようにするために、例えば、50μ秒待つ
次に、ポートから読み込む。
読み込まれたポートは、電圧の状態を変える
電気電子的動作の要件・時間が、厳密に決まっている。
ある回路を動作させるときに、回路を切り替えないといけない
電圧の高低で、ある回路の部分を止めて、異なる部分を動作させる(電流を流す)。
そのため、規定の時間よりも、速くアクセスできない
まず、制御ポートに、読み込むポート番号を教える。
そこで装置を制御できるようにするために、例えば、50μ秒待つ
次に、ポートから読み込む。
読み込まれたポートは、電圧の状態を変える
電気電子的動作の要件・時間が、厳密に決まっている。
ある回路を動作させるときに、回路を切り替えないといけない
電圧の高低で、ある回路の部分を止めて、異なる部分を動作させる(電流を流す)。
そのため、規定の時間よりも、速くアクセスできない
820デフォルトの名無しさん (ワッチョイ 81ff-xhm2)
2019/01/09(水) 11:29:26.49ID:4Rn8lGBj0 電流を流すってのはバイポーラの場合だね
今ほとんどのコンピュータがCMOSで電流はゼロアンペアだ
寄生容量で交流成分が漏れたり貫通電流の問題はあるが
それは信号が電流表現ということではない
今ほとんどのコンピュータがCMOSで電流はゼロアンペアだ
寄生容量で交流成分が漏れたり貫通電流の問題はあるが
それは信号が電流表現ということではない
821デフォルトの名無しさん (ササクッテロレ Spc5-W220)
2019/01/09(水) 18:32:34.88ID:ur1geU61p >>804
最適化でおかしくなる場合の例としては潜在的バクがある。そしてよく見るのは組み込み系。volatileもそうだがprintfいれたり-O0にすると動作が正常化するってのがある。
volatileの例だと
int* fifo=0x0001;
int data=*fifo;
のようなコードはvolatileつけないと順番入れ替えられたりコードそのものがなくなったりする。
-O0やprintf入れると直る系はキャッシュ周りのこともある。キャッシュを積極的に使うかどうかで、キャッシュを使わない場合に安定する。キャッシュをたくさん使うprintfのような関数を入れると再度積み直しになって安定する。
後者は潜在的なバグで発見が難しいことが多い。プログラミングはわかるけど組み込みを知らない人がやらかすバグの一つ。
最適化でおかしくなる場合の例としては潜在的バクがある。そしてよく見るのは組み込み系。volatileもそうだがprintfいれたり-O0にすると動作が正常化するってのがある。
volatileの例だと
int* fifo=0x0001;
int data=*fifo;
のようなコードはvolatileつけないと順番入れ替えられたりコードそのものがなくなったりする。
-O0やprintf入れると直る系はキャッシュ周りのこともある。キャッシュを積極的に使うかどうかで、キャッシュを使わない場合に安定する。キャッシュをたくさん使うprintfのような関数を入れると再度積み直しになって安定する。
後者は潜在的なバグで発見が難しいことが多い。プログラミングはわかるけど組み込みを知らない人がやらかすバグの一つ。
822デフォルトの名無しさん (ワッチョイ 8901-ahzL)
2019/01/09(水) 19:37:23.10ID:pHvZAha70 キャッシュ絡みの潜在的なソフトのバグってのは経験ないなぁ。キャッシュが化けるハードのバグなら経験あるけど。
キャッシュ絡みってシノニム問題のこと?
キャッシュ絡みってシノニム問題のこと?
823デフォルトの名無しさん (ワッチョイ 8b63-xhm2)
2019/01/09(水) 19:41:27.69ID:G9k7j+QI0 キャシュの話はC言語にかぎらずどの言語でも起こりそう
824デフォルトの名無しさん (ワッチョイ 8901-ahzL)
2019/01/09(水) 20:19:35.23ID:pHvZAha70 ああ、キャッシュ絡みのソフトバグ思い出した。
動的にプログラム入れ替えるソフト作ったときにIキャッシュをクリアし忘れてて誤動作したことあるわ。
Dキャッシュと分離されてる拡張ハーバードアーキテクチャの良い勉強になった思い出。
動的にプログラム入れ替えるソフト作ったときにIキャッシュをクリアし忘れてて誤動作したことあるわ。
Dキャッシュと分離されてる拡張ハーバードアーキテクチャの良い勉強になった思い出。
825デフォルトの名無しさん (ワッチョイ 4d00-XG35)
2019/01/13(日) 00:46:58.72ID:Yl3ShYz90 IMCCOやTecConfのエントリー作品を見る限り、
Cのコードゴルフって10年くらい前と短かさとかが変っていないように思えるんだけど
これはCが成熟しきった(所謂「枯れた」)言語である程度の成長限界があるからなのかな。
それとも凄腕プログラマの興味がPythonやらRubyなんかに移っちゃったのかな。
Cのコードゴルフって10年くらい前と短かさとかが変っていないように思えるんだけど
これはCが成熟しきった(所謂「枯れた」)言語である程度の成長限界があるからなのかな。
それとも凄腕プログラマの興味がPythonやらRubyなんかに移っちゃったのかな。
826デフォルトの名無しさん (ワッチョイ 3d7b-rp4P)
2019/01/13(日) 01:10:46.51ID:/M42Y9uV0 > コードゴルフ
意味無いから誰も参加しないだけでは
意味無いから誰も参加しないだけでは
827デフォルトの名無しさん (ワッチョイ 715f-tbRK)
2019/01/13(日) 01:20:23.99ID:zp78LtJW0 >>766
アセンブラとC言語はまったく違うのに何を言っているのか?
アセンブラとC言語はまったく違うのに何を言っているのか?
828デフォルトの名無しさん (ワッチョイ 715f-tbRK)
2019/01/13(日) 01:23:29.53ID:zp78LtJW0 >>798
あのな、コンピータには文字列という概念がないのだよ。
あのな、コンピータには文字列という概念がないのだよ。
829デフォルトの名無しさん (ワッチョイ f94e-45a3)
2019/01/13(日) 01:50:41.81ID:IM9k4xNE0 > それとも凄腕プログラマの興味がPythonやらRubyなんかに移っちゃったのかな。
ハハッ、ナイスジョーク
ハハッ、ナイスジョーク
830デフォルトの名無しさん (ワッチョイ a67c-VK1S)
2019/01/13(日) 10:13:49.80ID:yABfrIyE0831デフォルトの名無しさん (ワッチョイ da52-I3rR)
2019/01/13(日) 10:20:29.78ID:7BHWGbvy0 >>830
CPUがビット演算しか備えていないならそうかも知れないけど、整数や浮動小数点数の演算を備えているのだから数値の概念はあるだろう。
CPUがビット演算しか備えていないならそうかも知れないけど、整数や浮動小数点数の演算を備えているのだから数値の概念はあるだろう。
832デフォルトの名無しさん (アウアウウー Sa89-/Mri)
2019/01/13(日) 10:59:24.10ID:EaFLGn72a それいったらあるのはせいぜい、アルファベットとか…
833デフォルトの名無しさん (アウアウクー MM45-tbRK)
2019/01/13(日) 11:17:20.34ID:IIjq691iM >>830
むしろ数値しかない
むしろ数値しかない
834デフォルトの名無しさん (アウアウウー Sa89-/Mri)
2019/01/13(日) 11:26:53.62ID:EaFLGn72a チューリングマシンの説明に数値なんて出てこないでしょ
835デフォルトの名無しさん (アウアウウー Sa89-I3rR)
2019/01/13(日) 11:49:52.93ID:Mw9Ec3URa836デフォルトの名無しさん (アウアウウー Sa89-/Mri)
2019/01/13(日) 11:56:05.87ID:EaFLGn72a チューリングマシンでもコンピュータでもなんでもいいけど、記号操作をやってるんです。
数値なんてのはかなり抽象化した話です。
数値なんてのはかなり抽象化した話です。
837デフォルトの名無しさん (ブーイモ MM9a-7G8+)
2019/01/13(日) 12:02:55.92ID:QSfXhXiJM CPU の数値演算はビット列をAND、OR、 NOTの組み合わせで変換してるだけだしね
838デフォルトの名無しさん (ワッチョイ 3af1-goYb)
2019/01/13(日) 12:27:42.01ID:Ov2pIYHC0 まぁ根本的に機械にはビットも数値も文字も文字列も無いわな。電気的にHiかLowかって話だから。
そういう話するスレではないと思うが。
そういう話するスレではないと思うが。
839デフォルトの名無しさん (ワッチョイ e5f2-Fjw0)
2019/01/13(日) 12:51:37.79ID:gz3n+4+q0 演算器を構成するゲートレベルなら話は別だが、CPUレベルなら整数の加算てのは
ひとつのプリミティブな操作だろう。
ひとつのプリミティブな操作だろう。
840デフォルトの名無しさん (ワッチョイ d663-VK1S)
2019/01/13(日) 12:52:03.33ID:+ibs1ZYS0 C言語以外の話題になると、俄然盛況になるスレ
>>837
3種類もあるのかなあ… NAND または NOR どちらか一方だけじゃない?
3種類もあるのかなあ… NAND または NOR どちらか一方だけじゃない?
842デフォルトの名無しさん (ワッチョイ dd01-oec2)
2019/01/13(日) 13:37:24.61ID:Gq5QlaCR0 今どきはHDLで書いてLUTベースになってるんじゃないのん?
843デフォルトの名無しさん (ワッチョイ fad2-kZrb)
2019/01/13(日) 13:53:19.28ID:mc4jTf550 原子/分子に文字の概(ry
844デフォルトの名無しさん (ワッチョイ 7a01-CymP)
2019/01/13(日) 17:00:14.26ID:T8nAK+of0 >>841
NAND だけで全ての論理回路を構成できるけど NAND だけで構成されてるかどうかはわからん
NAND だけで全ての論理回路を構成できるけど NAND だけで構成されてるかどうかはわからん
845デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/13(日) 17:43:49.41ID:kE5YqrGT0 基本回路はNOTで、その出力で駆動する
スイッチング素子を直列に置くか並列に置くかでAND/ORにしてるだけ
出力を負論理にするのはIOL>IOHだったTTL時代の名残
スイッチング素子を直列に置くか並列に置くかでAND/ORにしてるだけ
出力を負論理にするのはIOL>IOHだったTTL時代の名残
846デフォルトの名無しさん (ワッチョイ ce8c-5iom)
2019/01/15(火) 07:09:12.36ID:nk6JBEGL0 根本は電子とホールの移動度の差
847デフォルトの名無しさん (アウアウウー Sa89-/Mri)
2019/01/15(火) 07:18:28.73ID:P3RuPPdOa たとえば水流で動作するコンピュータがあったらと考えると電子とホールは全然本質じゃない
848デフォルトの名無しさん (ワッチョイ a57b-dZ8/)
2019/01/15(火) 08:01:36.67ID:c3MJrubW0 そういや、スマートボール(まぁパチンコ台みたいなものと思ってくれ)式に
上の投入口からボールを落とすと、台に仕組まれたシーソーの傾きが変わって
後から入れるボールの流れも変わる、ていう「機械式計算機」の
モデルもあったな。
シーソーにラッチがついてて「メモリ機能」を持たせたり、
ボールを何個か積み上げるとラッチが解除される仕掛けで変更したり。
>>846 は半導体素子の原理説明だったかな。
P型、N型それぞれの中でも、電子と正孔の両方があったはず、だよね。
上の投入口からボールを落とすと、台に仕組まれたシーソーの傾きが変わって
後から入れるボールの流れも変わる、ていう「機械式計算機」の
モデルもあったな。
シーソーにラッチがついてて「メモリ機能」を持たせたり、
ボールを何個か積み上げるとラッチが解除される仕掛けで変更したり。
>>846 は半導体素子の原理説明だったかな。
P型、N型それぞれの中でも、電子と正孔の両方があったはず、だよね。
849デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/15(火) 08:06:38.17ID:O800IQzp0 正孔なんてものは存在しない
あるはずの電子がない状態というだけ
電流の向きと電子の移動方向が逆ということを
どうしても受け入れられない石頭のための説明だ
あるはずの電子がない状態というだけ
電流の向きと電子の移動方向が逆ということを
どうしても受け入れられない石頭のための説明だ
850デフォルトの名無しさん (アークセー Sx85-rXi3)
2019/01/15(火) 09:33:53.56ID:biAsBETNx851デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/15(火) 10:10:49.40ID:O800IQzp0852デフォルトの名無しさん (ワッチョイ ce78-OQTP)
2019/01/15(火) 10:24:18.70ID:ymCyYm1q0 つまり電子が無くなることなんて無かった…?
853デフォルトの名無しさん (ワッチョイ a67c-VK1S)
2019/01/15(火) 10:36:11.91ID:xc4OhZdf0 >>849
「あるはずの電子が無い状態」のことを性行っていうんよ
「あるはずの電子が無い状態」のことを性行っていうんよ
854デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/15(火) 11:02:13.55ID:O800IQzp0 846みたいに陽電子と勘違するやつがいるから指摘しといたんだ
855デフォルトの名無しさん (ブーイモ MM71-1nak)
2019/01/15(火) 11:06:00.20ID:TmM1XKX0M 誤「あるはずの電子がない」
正「電子がある方が結合が安定する(けど陽子数と合わない)」
正「電子がある方が結合が安定する(けど陽子数と合わない)」
856デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/15(火) 11:19:45.08ID:O800IQzp0 >>855
ほほう それでそれで?
____
/:::::::ヽ
f::/" ̄ ̄ヾi
|:リ _ _|
|r==( o)( o)
( ヽ _) i
__/ヽ ー== イ
/ヽ ヽ \__ノ
`/ i \_/、
/ r-、 ハ
レ⌒ヾi / / |
i  ̄`ー―-ヘ |
ヽ_____ノーイ
| \ ノ
 ̄ ̄ ̄ ̄
ほほう それでそれで?
____
/:::::::ヽ
f::/" ̄ ̄ヾi
|:リ _ _|
|r==( o)( o)
( ヽ _) i
__/ヽ ー== イ
/ヽ ヽ \__ノ
`/ i \_/、
/ r-、 ハ
レ⌒ヾi / / |
i  ̄`ー―-ヘ |
ヽ_____ノーイ
| \ ノ
 ̄ ̄ ̄ ̄
857デフォルトの名無しさん (アウアウウー Sa89-/Mri)
2019/01/15(火) 12:02:58.73ID:P3RuPPdOa ホールはあるぞ。
電子も実はないんだとか言うならまだわかるが。
電子も実はないんだとか言うならまだわかるが。
858デフォルトの名無しさん (バットンキン MM99-rXi3)
2019/01/15(火) 12:03:00.19ID:+hPQnyk+M >>851
じゃあ、逆に聞くが正孔って何?
じゃあ、逆に聞くが正孔って何?
859デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/15(火) 12:12:57.27ID:O800IQzp0 ブツではなく状態ということだ
860デフォルトの名無しさん (アークセー Sx85-rXi3)
2019/01/15(火) 12:46:21.45ID:biAsBETNx なんだ、やっぱりその状態があるって認めてるじゃん。正孔(という状態)は存在する、と。
てか誰も「正孔というモノ」の話なんかしてなくて一人だけ勘違いしてるw
てか誰も「正孔というモノ」の話なんかしてなくて一人だけ勘違いしてるw
861デフォルトの名無しさん (アメ MM71-45a3)
2019/01/15(火) 12:53:56.34ID:XHhYs/N9M いや俺も勘違いしてるから二人にしとけ。
862デフォルトの名無しさん (ワッチョイ 3af1-VK1S)
2019/01/15(火) 12:59:09.57ID:adxfbmcy0 じゃあ俺も俺も
863デフォルトの名無しさん (アウアウウー Sa89-JzEj)
2019/01/15(火) 12:59:28.21ID:uoTEW6ZSa ところで何の話をしているのかね?
864デフォルトの名無しさん (ワッチョイ 3af1-VK1S)
2019/01/15(火) 13:10:35.80ID:adxfbmcy0 過去レス読めばいい
865デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/15(火) 15:48:52.44ID:O800IQzp0866デフォルトの名無しさん (ワッチョイ 16eb-Fjw0)
2019/01/15(火) 16:17:51.71ID:Q775hXRk0 トムとジェリー 仲良くけんかしな
トムトムトムにゃーご
ジェリージェリージェリーちゅう
トムトムトムにゃーご
ジェリージェリージェリーちゅう
867デフォルトの名無しさん (アークセー Sx85-rXi3)
2019/01/15(火) 17:18:14.06ID:biAsBETNx >>865
もうこの話題も飽きたので相手しないだけ。
もうこの話題も飽きたので相手しないだけ。
868デフォルトの名無しさん (ワッチョイ d663-VK1S)
2019/01/15(火) 17:23:42.61ID:TYEZC8N+0 昭和の香り
869デフォルトの名無しさん (アウアウウー Sa89-JzEj)
2019/01/15(火) 20:58:52.03ID:uoTEW6ZSa 昭和は遠くなりにけり
870デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/15(火) 21:44:31.19ID:O800IQzp0 >>867
バイバイ、イソップのキツネ君w
バイバイ、イソップのキツネ君w
872デフォルトの名無しさん (ワッチョイ ce02-H432)
2019/01/16(水) 17:45:04.86ID:ECRqnYoc0 そういやトムジェリって一作目が作られたのが1940年なのな。戦前だ。
それで延々と続いて2017年にもOVAのDVDが出ている。恐ろしく長寿だ。
まあディズニー関係が一番長寿なんだろうけどね。
それで延々と続いて2017年にもOVAのDVDが出ている。恐ろしく長寿だ。
まあディズニー関係が一番長寿なんだろうけどね。
873デフォルトの名無しさん (アウアウウー Sa89-/Mri)
2019/01/16(水) 17:49:16.09ID:ryLt0Gqla スーパーマンの1941年のアニメなんてすごいレベル高いよ
874デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
2019/01/16(水) 22:19:46.42ID:+bYxL46c0 ENIACの頃か
875デフォルトの名無しさん (ワッチョイ c101-DeFq)
2019/01/17(木) 23:04:44.74ID:KvO4PGbE0 フラッグの状態によって引数を変更する必要があるのですが
どのやり方がベストでしょうか?
//A:冗長だけど単純で解りやすいと思う
if ( flag )
{
func(PARAM1, PARAM2, 1, "hoge1", 2, "hoge2", 3, "hoge3");
}
else
{
func(PARAM1, PARAM2, 2, "hoge2", 3, "hoge3", 1, "hoge1");
}
//B:いったん変数に入れてから function call
if ( flag )
{
n[0] = 1; n[1] = 2; n[2] = 3;
str[0] = "hoge1"; str[1] = "hoge2"; str[2] = "hoge3";
}
else
{
n[0] = 2; n[1] = 3; n[2] = 1;
str[0] = "hoge2"; str[1] = "hoge3"; str[2] = "hoge1";
}
func(PARAM1, PARAM2, n[0], str[0], n[1], str[1], n[2], str[2]);
どのやり方がベストでしょうか?
//A:冗長だけど単純で解りやすいと思う
if ( flag )
{
func(PARAM1, PARAM2, 1, "hoge1", 2, "hoge2", 3, "hoge3");
}
else
{
func(PARAM1, PARAM2, 2, "hoge2", 3, "hoge3", 1, "hoge1");
}
//B:いったん変数に入れてから function call
if ( flag )
{
n[0] = 1; n[1] = 2; n[2] = 3;
str[0] = "hoge1"; str[1] = "hoge2"; str[2] = "hoge3";
}
else
{
n[0] = 2; n[1] = 3; n[2] = 1;
str[0] = "hoge2"; str[1] = "hoge3"; str[2] = "hoge1";
}
func(PARAM1, PARAM2, n[0], str[0], n[1], str[1], n[2], str[2]);
876デフォルトの名無しさん (ワッチョイ c101-DeFq)
2019/01/17(木) 23:05:39.65ID:KvO4PGbE0 //続き
//C:テーブルその1
const int table[2][3] = {{1,2,3},{2,3,1},};
const char *stbl[2][3] = {{"hoge1","hoge2","hoge3"},{"hoge2","hoge3","hoge1"}};
i = flag ? 0: 1;
func(PARAM1, PARAM2, table[i][0], stbl[i][0],table[i][1], stbl[i][1],table[i][2], stbl[i][2]);
//D:テーブルその2 順番が違うだけの場合だったらこれでもいける
const int table[3] = {1,2,3};
const char *stbl[3] = {"hoge1","hoge2","hoge3"};
int order[2][3] = {{0,1,2},{1,2,0}};
i = flag ? 0: 1;
func(PARAM1, PARAM2, table[order[i][0]], stbl[order[i][0]],table[order[i][1]], stbl[order[i][1]],table[order[i][2]], stbl[order[i][2]]);
//E:三項演算子 これは無駄に比較が多くなるから無しかも
func(PARAM1, PARAM2, flag?1:2, flag?"hoge1":"hoge2",flag?2:3, flag?"hoge2":"hoge3",flag?3:1, flag?"hoge3":"hoge1");
//C:テーブルその1
const int table[2][3] = {{1,2,3},{2,3,1},};
const char *stbl[2][3] = {{"hoge1","hoge2","hoge3"},{"hoge2","hoge3","hoge1"}};
i = flag ? 0: 1;
func(PARAM1, PARAM2, table[i][0], stbl[i][0],table[i][1], stbl[i][1],table[i][2], stbl[i][2]);
//D:テーブルその2 順番が違うだけの場合だったらこれでもいける
const int table[3] = {1,2,3};
const char *stbl[3] = {"hoge1","hoge2","hoge3"};
int order[2][3] = {{0,1,2},{1,2,0}};
i = flag ? 0: 1;
func(PARAM1, PARAM2, table[order[i][0]], stbl[order[i][0]],table[order[i][1]], stbl[order[i][1]],table[order[i][2]], stbl[order[i][2]]);
//E:三項演算子 これは無駄に比較が多くなるから無しかも
func(PARAM1, PARAM2, flag?1:2, flag?"hoge1":"hoge2",flag?2:3, flag?"hoge2":"hoge3",flag?3:1, flag?"hoge3":"hoge1");
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★4 [BFU★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 中国、レアアース輸出制限wwwwwwwwwwwwwwwwwwwwwwww🎌 [329329848]
- おまえらって冷笑系おおすぎじゃね
- 日本をドーム状に覆って気温を一定にしたほうが過ごしやすいんじゃないの?
- 職場の人の雑談あまりにもどうでもよくて混ざらないんだけどさ
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
