23/01/20 18:58:44.32 coXRsv3s0.net
値の範囲を調整するのに mod とると周期性が現れたり偏ったりするねんな
128:デフォルトの名無しさん (ワッチョイ 2a47-w88e)
23/01/20 19:06:38.00 vRsHomcy0.net
>>122
リフレッシュカウンタから乱数を作るのがお約束ですよ、8 bit の時代はね
129:デフォルトの名無しさん
23/01/20 19:28:35.95 R9yntGVvd.net
>>127
そういうCPUやBASICROMに依存する方法は最新機種では動作が変わったり予測できないので商業レベルではやらなかった
かわりに線形合同などのアルゴリズムを使った
アーケードのプレイデモではジョイスティックとボタンの記録だけ取って再生してメモリを節約してたので
毎回同じ乱数パターン(敵の移動や弾発射)が獲得できないと困るので
130:デフォルトの名無しさん
23/01/20 20:01:16.13 EscqwfOXM.net
>>126
とはいえ、0~10までの乱数取得するのに%使わずにどうしろと…
質の良い疑似乱数使えば問題無い
131:デフォルトの名無しさん
23/01/20 20:28:16.76 R9yntGVvd.net
疑似乱数にはたいてい周期性が現れるもの
とくに下の桁に現れやすいので
上の桁を取ればいい(modではなく目的の桁/乱数の最大桁をかける)
132:デフォルトの名無しさん
23/01/20 20:45:14.37 A1RdTars0.net
>127
再現性のある乱数が欲しいって場合も微レ存。
133:はちみつ餃子
23/01/20 21:21:15.74 FDJF8fJ70.net
>>129
乱数源自体は良質なものだという前提で、
0~10 が欲しいときに単に %11 にすると小さい値のほうが少し出現率が高くなる。
たとえば乱数源がバイト単位だとすると、
255 以下で最大の 11 の倍数 (253) を超えた分 (254~255) が出現率を偏らせる原因。
だからそのような値が出たときに捨てて次の値を使用することにした上で %11 すればいい。
C++ の std::uniform_int_distribution などはだいたいそういう実装になってる。
134:デフォルトの名無しさん
23/01/20 21:27:39.82 A1RdTars0.net
アセンブラで
MOV AL,8bit 乱数
MOV BL,欲しい整数乱数最大値+1
MUL BL
;AHに0からBL-1までの乱数が入る
ってなことやってたような気がする。
計算上最大値の出現率が低いみたい。
16bitに拡張すれば多少改善。
135:デフォルトの名無しさん
23/01/20 22:44:15.60 vRsHomcy0.net
>>128
そうですかね…
案外 LD A, R とかやってた気がするなあ…気がするだけですけどね
136:デフォルトの名無しさん
23/01/20 22:45:17.95 vRsHomcy0.net
>>131
8 bit の時代に、ですか?
結構念入りなアセンブラプログラムですねえ、めんどくさくって死にそう
137:はちみつ餃子
23/01/20 23:11:55.26 FDJF8fJ70.net
ファミコン、スーパーファミコン時代の有名ソフトの乱数生成の仕組みが今ではかなり明らかになってるが、
ドラクエとかファイナルファンタジーとかでも思ったより場当たり的な雑な仕組みで驚く。
こういう用途だと多少の性質の悪さもそれはそれで味になるということもあるんだろう。
シミュレーションとか暗号とかに関わるものだと理論的な裏付けがないと恐ろしいが……
138:デフォルトの名無しさん
23/01/21 00:33:34.31 EJn7glvGM.net
>>130
いや、だから長周期な乱数が有るんだよ
間違いなくオマエが生きてる内に一週しないよ
下位バイトだって当然だ
周期してると思ったら死ぬまで見てれば周期してないのが分かるよ
139:デフォルトの名無しさん
23/01/21 00:40:48.68 EJn7glvGM.net
1 2 2 と出て、2が偏ってと言う奴はいない
あまりにも範囲が小さいと、偏ってるかとか周期が有るかは長く見ないと分からん
140:デフォルトの名無しさん
23/01/21 00:51:58.56 9x5I4Xif0.net
メルセンヌツイスタ
URLリンク(ja.wikipedia.org)
141:デフォルトの名無しさん
23/01/21 00:55:32.36 iEE3pXT90.net
>>137
周期の話じゃないよ 乱数発生器の下位ビットはランダムじゃないことがあるって話だよ
全部同じ値だったりrand()%2で0と1が交互に順番に出てくるだけだったりするから上位ビット使おうってこと
自前で乱数を作る際にmodを使わないなんてのはC言語のFAQレベルの常識の話だからちょっとネットでもあさって勉強すればすぐ身につくよ
それ以前に良い発生器を使えばいいっていうのはその通りだね
142:デフォルトの名無しさん
23/01/21 01:15:16.87 EJn7glvGM.net
>>140
オマエが無知なの分かったよ
下位ビットが規則的になるってのは何も考えてない線形合同法だけの性質だ
msvcrtのrandは線形合同法で求めた32bitの内上位16bitを下位にシフトしてるから、そういう性質はない
他の長周期な乱数はなにもしなくても当然そんな性質はない
143:デフォルトの名無しさん
23/01/21 01:36:04.58 EJn7glvGM.net
ちなみにLinux(glibc)で% 10で試しても、偶数と奇数が交互に続くと言うことはなかった
カルドセプトで話題になった乱数のバグは、自前で線形合同法を実装したから起きた問題だ
普通にSDKの乱数を使ってたら起きなかっただろう
144:デフォルトの名無しさん
23/01/21 02:05:39.28 sslkm/QP0.net
>135
8/16bit時代のティルナノーグってゲームがシナリオコードっての使ってマップやシナリオを自動生成するらしく、
まぁ多分シナリオコードを再現性のある乱数のキーにしてるんだろうと。
145:デフォルトの名無しさん
23/01/21 05:00:16.98 Q9FQ3lI1d.net
>>141
結局下位のほうに周期性が現れやすいというのは肯定してるなw
ライブラリのを仕組みもわからずそのまま使うと問題が起きた時に危険なので自前で作ったほうが楽なこともあるんだよ
移植の問題もあるから
146:デフォルトの名無しさん (ワッチョイ 6301-CtYK)
23/01/21 11:13:45.88 TvLSyCnz0.net
理想的な一様乱数であっても
頻度が一様から少し崩れる件については
>>132 でクリアになってる前提で
次に周期等の乱数の素性をああだこうだやってるのでいいんだよね?
147:デフォルトの名無しさん
23/01/21 12:57:12.01 EJn7glvGM.net
>>144
線形合同法そのままの下位ビットはランダム性が低いから上位16bitを使うという実装がされてる
これは%で下位ビット使っても何も問題無い
他の乱数(例えばメルセンヌツイスターとか)とかも下位ビット使っても何も問題無い
オマエは何が言いたいんだ?
乱数イコール素の線形合同法と決めつけてんのか?
148:デフォルトの名無しさん
23/01/21 22:32:06.91 PxhUXXTz0.net
それより MT を利用したストリーム暗号の実装を探しているんですが、誰か良さげなのを書いていませんかね?
149:デフォルトの名無しさん
23/01/21 23:01:28.77 5FfejZmpM.net
暗号の実装なら乱数源よりハッシュ関数の設計の方が重要だと思うけど
150:はちみつ餃子
23/01/21 23:09:55.12 AnImjWZM0.net
メルセンヌツイスタは予測はしやすいので暗号に向かないって話じゃなかったっけ?
理論に詳しいわけじゃないけどストリーム暗号だと生成した乱数を
ほとんど順序通り使うことになるので素直に使うと弱い暗号になってまう。
それをカバーする案がどこかで出ているとかいう話なのかな?
151:デフォルトの名無しさん
23/01/21 23:25:57.01 PxhUXXTz0.net
>>148-149
生成したMT乱数をハッシュに通して xor マスクに使えば今すぐにでも実装できまますが、馬鹿みたいにコストが高い
もっとお気楽に「暗号論的に安全な」マスクを生成する方法があるはず、と踏んでいます
>>149
生成された暗号列から、暗号生成系内の状態を推測する手段が
*****「ありうる」*****
というだけで、実際に MT において予測しやすいかどうかは、また別の問題かと
152:デフォルトの名無しさん
23/01/22 06:45:18.91 5LyKSzcv0.net
メルセンヌツイスタは暗号論的乱数ではないからな
標準の範疇ではrandom_deviceと併用することで暗号論的乱数を作れる
# 俺はrandom_deviceにハメられたことがあって不信感持ってる
153:デフォルトの名無しさん
23/01/22 06:57:44.96 GyU+xFDzM.net
ほぼ2の20000乗の長周期の乱数列の出現パターンに対して実用的な有限時間内に値の予測とかできるものなのか?
154:デフォルトの名無しさん
23/01/22 09:17:28.62 m0kendFMd.net
初期値を毎回同じにするとかマヌケな実装してなければ大丈夫だが
そういうの意外と多いからな
155:はちみつ餃子
23/01/22 11:31:30.58 ZNfmIfkb0.net
>>152
ざっと調べてみた感じだと素朴なメルセンヌツイスタだと 624 個の連続する乱数列があれば内部状態を計算可能ということみたいだね。
156:デフォルトの名無しさん (ラクッペペ MM7f-qqxO)
23/01/22 11:55:01.35 2NQ69pgqM.net
擬似乱数は内部状態から数列を計算して外部出力しているのであって、出力された数列の結果だけから内部状態を計算して次回出力を予測するのは難しい
623もの内部変数をすべて確定させようとすれば途方も無いことになると思うけど
157:デフォルトの名無しさん
23/01/22 13:27:42.71 slZVcCWf0.net
量子コンピュータならあっという間かもしれん
158:デフォルトの名無しさん
23/01/22 14:53:35.01 5LyKSzcv0.net
もしかしてハッシュを復号できると思っている人がいるの?
159:デフォルトの名無しさん (ワッチョイ ff02-Jpma)
23/01/22 17:32:55.31 KzI8pxO80.net
現実で乱数で問題になるのは中周期
短周期は誰が見ててもすぐに欠点がわかる
中周期は人間が見てわかりづらいけど
へたをすると推測されうる
本当に重要な場面では線形合同法は使わないね
160:デフォルトの名無しさん (ワッチョイ 0301-WyxW)
23/01/22 18:43:18.71 5nd4WcY/0.net
>>157
ハッシュを復号?
何意味不明なことを言ってるんだよw
161:デフォルトの名無しさん (JP 0H67-uWjM)
23/01/22 18:52:07.93 Gv0g55llH.net
15は大した乱数を求めてないだろうし線形合同法で大丈夫でしょ
162:デフォルトの名無しさん (テテンテンテン MM7f-TAsf)
23/01/22 19:51:00.57 r87X7TULM.net
少なくともゲーム用途ではもう決定版とも言えるのがPCGだ
これは線形合同法を加工したものだ
大体の用途にはこれだけ知ってれば十分だろ
163:デフォルトの名無しさん
23/01/23 07:23:09.72 HN6zkKZyd.net
>>159
返事しやがったwww
164:デフォルトの名無しさん
23/01/23 07:36:54.35 rT2ytU3d0.net
>>162
ハッシュ復号で顔真っ赤w
165:デフォルトの名無しさん
23/01/23 07:39:15.92 HN6zkKZyd.net
無理ありすぎ
157の発言内容で恥さらしたと思ったの
おまえだけだから
166:デフォルトの名無しさん
23/01/23 07:52:21.59 rT2ytU3d0.net
ならハッシュ復号とか言う意味不明な用語を説明してみw
167:デフォルトの名無しさん
23/01/23 07:59:00.47 OYWoWYjxa.net
必死やね
168:デフォルトの名無しさん
23/01/23 08:34:51.13 rT2ytU3d0.net
>>166
>>164 がなw
169:デフォルトの名無しさん (スップ Sd1f-N2va)
23/01/23 09:53:15.91 HN6zkKZyd.net
昔、ブラックエンジェルスって漫画で
「神父様」というワードで殺人スイッチ入るキャラいたけど
ここには「ハッシュ」で発狂するやつがいるな
170:デフォルトの名無しさん (ワッチョイ cf63-88l+)
23/01/23 10:00:52.21 ZftbX+tS0.net
発狂なんて表現は、自身が精神科の患者で無ければ口にしない言葉だ
171:デフォルトの名無しさん
23/01/23 10:26:46.25 e9NCR7zVr.net
ハッシュ値からハッシュ関数への入力を求めることをハッシュを復号て言ってるのかと、思ったけど違うの?
172:デフォルトの名無しさん
23/01/23 11:18:20.16 TfCEWCiYM.net
普通はそれを原像攻撃といいます
173:デフォルトの名無しさん
23/01/23 12:07:23.12 2WGuD1xXd.net
>>170
ハッシュドビーフを牛に戻せるか?
174:デフォルトの名無しさん
23/01/23 13:04:17.4
175:8 ID:nA4Uy4AL0.net
176:デフォルトの名無しさん
23/01/23 13:05:15.54 rT2ytU3d0.net
>>170
その意味かどうかもわからんしそもそも>>157が唐突に言い出した意図もわからん
まあ本人もよく理解してないだろうことはわかるけどw
177:デフォルトの名無しさん
23/01/23 18:58:27.02 ru4XzPDN0.net
暗号学的ハッシュ関数は暗号学的なだけで暗号ではないわな
まあ、ややこしいのはわかる
178:デフォルトの名無しさん (ワッチョイ cf63-88l+)
23/01/23 19:37:29.31 ZftbX+tS0.net
現在5chで使っているIDもハッシュ関数使っています
掲示板毎の番号、日付、IPアドレスの組み合わせ32ビットを
16ビットを求めてます
そのため、IDから元のIPアドレスは特定不可能とされてます
179:デフォルトの名無しさん (ワッチョイ cf63-88l+)
23/01/23 19:39:57.78 ZftbX+tS0.net
組み合わせた32ビットのキーから
16ビットのIDSを求めてます
でした
言葉足りなくて済みません
180:デフォルトの名無しさん (スップ Sd1f-N2va)
23/01/23 19:50:20.64 HN6zkKZyd.net
優しいお兄さんたちがやんわり教えてくれてるぞ
よーく聞いとけなハッシュ君
181:デフォルトの名無しさん
23/01/23 20:22:55.39 rT2ytU3d0.net
確認のための>>170とお前以外に復号なんて言ってるアホはいないけどなw
182:デフォルトの名無しさん
23/01/23 20:25:01.82 HN6zkKZyd.net
いいからよく聞いとけ
おまえには金取ってもいいくらいの
特別サービスだぞ
183:デフォルトの名無しさん
23/01/23 20:28:15.99 rP/zs2fBa.net
上げ足取りの極みやね
伝わるとしても即興の造語は決して許されない
184:デフォルトの名無しさん
23/01/23 20:34:11.46 rT2ytU3d0.net
>>180
>>166ww
185:デフォルトの名無しさん
23/01/23 22:02:00.33 FHYSH6Afr.net
>>173
ハッシュってできる限り衝突しないようにするけど多対一になるのか?
186:デフォルトの名無しさん
23/01/23 22:10:48.44 gaP9WTLb0.net
そうじゃなければ意味無いでしょ
バイト表現をそのままキーにでもするつもりか
187:デフォルトの名無しさん
23/01/23 22:18:56.34 gaP9WTLb0.net
大きな空間から小さな空間へぐちゃっと潰す非単射だからhashと呼ばれるんだろうし、むしろ被らなければハッシュ法とは呼べない
188:デフォルトの名無しさん
23/01/23 23:25:11.50 JEHxFd+10.net
>>183
あくまでできるかぎり衝突しない努力をしているのであって
絶対に衝突しないことを保証しているわけではない以上
単射にはならんやろ
189:デフォルトの名無しさん (ワッチョイ cf63-88l+)
23/01/24 00:14:26.83 D+LPvIAC0.net
この掲示板で使ってるIDは、実際に衝突している
32ビットのバリエーションがある対象を16ビットパターンに圧縮する
どの位衝突が発生するか、簡単に計算で出せるだろう
190:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-j5s0)
23/01/24 00:47:30.90 Ago7Tr1G0.net
>>183
元になる情報より小さい空間への写像なんだから当然に衝突することはありうるよ。
確率が均等になるようにデザインされるのが普通だが。
それとハッシュといっても均等でありさえすればよいハッシュテーブルなどに使うハッシュ関数と
意図的に衝突させるのが困難な暗号学的ハッシュ関数は事情が異なる。
191:デフォルトの名無しさん
23/01/24 07:19:05.11 eIuiRJ7Hd.net
I/Oのマシン語リストの1行チェックサムだったのが
CRCに進化し、更にCRC32になり・・・
192:デフォルトの名無しさん
23/01/24 07:22:48.88 hOWV1dmX0.net
>>189
それは誤り訂正符号であってハッシュじゃない、誤りが少なければ訂正できる、という性質のもの
193:デフォルトの名無しさん
23/01/24 07:28:16.15 CHY+WBSp0.net
予測や推論が可能な写像か
194:デフォルトの名無しさん
23/01/24 07:38:18.20 /rWynzzhM.net
誤り検出や訂正と予測や推論は違う
巡回符号では予測は出来ない
195:デフォルトの名無しさん (スップ Sd1f-N2va)
23/01/24 07:45:39.55 eIuiRJ7Hd.net
>>190
いや、訂正なんて求めてなかった
あくまで検出さえできれば
点検なり再送なり対応はどうにでもできる
ちまちま訂正を試みて挙げ句不確実とか
バカバカしくて眼中になかった
196:デフォルトの名無しさん (ワッチョイ 6fda-A+LD)
23/01/24 08:00:50.17 yjc0n37Q0.net
巡回冗長検査(CRC)
URLリンク(ja.wikipedia.org)
巡回符号
URLリンク(ja.wikipedia.org)
197:デフォルトの名無しさん (ワッチョイ 4369-SUdz)
23/01/24 08:05:18.69 iB9B6REv0.net
元データと誤り訂正符号がセットになってる前提だものね
PGPでいう暗号ではなく署名
198:デフォルトの名無しさん (スッププ Sd1f-lTI6)
23/01/24 13:20:38.09 cMLylpMed.net
>>15 だが待ちくたびれたニダ
オラの欲しいのは乱数が性器分布してるものなの!
銀杏乱数ではありまへん
さあ、素晴らしいコードを見せてケレ
199:デフォルトの名無しさん
23/01/24 18:41:20.06 XLjyfoTr0.net
const char *subarasiikoodo() {retrun "乱数が性器分布してるもの"/*"銀杏乱数"*/;}
200:デフォルトの名無しさん
23/01/24 23:29:13.35 1YOqlgJ1d.net
>>196
淫乱とか性器を見せろとかなんなんだね君はいい加減にしたまえ!
201:デフォルトの名無しさん
23/01/25 20:45:01.15 8z5wZ+1pM.net
卑猥な言葉に反応する大人を見てはしゃいでいる子供って感じ
202:デフォルトの名無しさん
23/01/26 07:05:46.47 epYCai+9d.net
プログラム技術板で猥談にしか参加できないやつpgr
203:デフォルトの名無しさん
23/01/26 11:50:43.36 xdWnPQo8r.net
>>185
普通のハッシュが非単射なのはその通りだが、
完全ハッシュというものも一応ある。
204:デフォルトの名無しさん
23/01/26 23:06:32.72 HOinztZt0.net
何に使うものなんですか?
205:デフォルトの名無しさん (ワッチョイ ff02-Jpma)
23/01/27 05:48:59.42 Ia5Vv5I40.net
セキュリティがどうでもいい時に
速度を要求されるとき
206:デフォルトの名無しさん
23/01/27 08:04:21.64 DHOIN7NEM.net
パスワードなどを暗号化して保存する時ハッシュ値を保存する
他のパスワード値と重複することが無いように完全ハッシュとする
万一衝突すれば他人のパスワードが誤ってすり抜ける可能性が生じる
207:デフォルトの名無しさん
23/01/27 09:53:14.54 hWSIv7AR0.net
んなアホな
完全ハッシュの説明はともかく、パスワードに関してはIDとペアで使うんだから他人のパスワードと被ろうがどうだろうが関係がない
そもそもソルト使うんだからuser1とuser2が同じパスワードを使ってもハッシュ値は別になる
208:デフォルトの名無しさん (ラクッペペ MM7f-qqxO)
23/01/27 10:07:50.70 GgXEpiKGM.net
いや完全ハッシュの前提が崩れると違うパスワードが同じハッシュ値で衝突して区別できないので破綻する
ソルトは完全ハッシュを担保するための手段
209:デフォルトの名無しさん
23/01/27 10:42:53.11 MqPTrKVr0.net
URLリンク(en.wikipedia.org)
> Disadvantages of perfect hash functions are that S needs to be known for the construction of the perfect hash function.
無理やろ
210:デフォルトの名無しさん
23/01/27 10:59:53.36 WUhobyCY0.net
暗号学的ハッシュ関数
URLリンク(ja.wikipedia.org)
211:デフォルトの名無しさん
23/01/27 11:02:54.46 hWSIv7AR0.net
MM7f-qqxOは衝突がないっていうのがどういうことなのかなんか勘違いしてるんだろう
そういうもんを用意したとして>>203のいう通り強度なんかめちゃくちゃ弱くなるんだからさ
いずれにしても破綻するとか言われたところで世の中は衝突ありのSHA-2使ってんだからもうちょい勉強しとけ
212:デフォルトの名無しさん
23/01/27 12:35:15.87 ctyQpdLuM.net
>>206
ハッシュ値とハッシュテーブルを混同しててクソワロタw
213:デフォルトの名無しさん
23/01/27 18:34:56.90 I0K5YroCd.net
>>199
ちょっとした変換ミスだろ?
あるシードを与えてそこから連続的に乱数を大量に取得してそれらを並べてみたら、あら不思議 平均0分散1のヒストグラムができました、てなモノが欲しいだけなのに・・・
214:デフォルトの名無しさん
23/01/27 19:16:01.14 ctyQpdLuM.net
正規分布乱数でググれば幾らでも出てくる
ちゃんと理解するのは容易じゃないがな
215:デフォルトの名無しさん
23/01/27 23:07:01.65 Nd07Ngynd.net
>>204
説明としておかしい
他人のパスワードが誤ってじゃなくて
悪意ある他人が総当たり的に適当なパスワードを試して当たってしまう可能性が高くなるんだろ
216:デフォルトの名無しさん
23/01/28 13:25:21.47 5Vj/XtKl0.net
それはどのパスワードでも同じ
217:デフォルトの名無しさん
23/01/28 14:42:34.89 dMjf5U6fa.net
>>214
平文ならパスワードが違えばマッチすることはない
ハッシュだとパスワード違うのにハッシュ値が同じになる(ことが理論的にはあり得る)から違うパスワードでも通っちゃうって話だろ
218:デフォルトの名無しさん
23/01/28 15:06:06.84 ys7yM/+j0.net
パスワード程度の小さなデータなら
原データよりもビット数が多いハッシュを使えば安全だろ
219:蟻人間
23/01/28 15:09:44.90 bcwoFDyEd.net
おまいらにちょっと質問。
URLリンク(github.com)
SHA-256でシェアウェアのパスワード設定をしているけど、このハッシュとソルトでブルートフォースできますか?
220:デフォルトの名無しさん
23/01/28 15:29:16.38 x6yOEZAM0.net
攻撃に非現実的な時間が必要ってだけであって可否を問うなら可能に決まってんだろうよ
ちょっと考えれば分かると思うんだが、できますかとか脳ミソ幾分欠損でもしてんのかね?
221:蟻人間
23/01/28 15:44:01.84 bcwoFDyEd.net
スーパーハッカーならスパッと解けると思ったが、つまらないな
222:デフォルトの名無しさん
23/01/28 15:45:30.65 jdKvyKGa0.net
口の汚さはアタマ悪くても可能に決まってます
223:デフォルトの名無しさん
23/01/28 16:39:52.59 NqcfPhRT0.net
>>216
ビット数が多くても偏りの多いハッシュ関数使ってたらダメってことすらわからんのか?
224:デフォルトの名無しさん
23/01/28 17:23:18.26 btPcpkQFM.net
パスワードは間違いが続くと、暫く時間たたないとログイン出来なくすればブルートフォースもほとんど不可能になる
なのでハカーは総当たりなんてせずに、何処かで漏れたIDとパスワードを違うサイトで試すだけだ
225:デフォルトの名無しさん
23/01/28 20:47:48.08 NqcfPhRT0.net
>>222
ドコモ口座でリバースブルートフォースされまくっただろ
今更ハカーとか何言ってるんだかw
226:デフォルトの名無しさん
23/01/28 21:54:17.79 jdKvyKGa0.net
最近のサイトはメッセージで認証番号送ってくる方式が増えた
227:デフォルトの名無しさん
23/01/28 23:13:06.15 1IGwH4nq0.net
laslpassのやらかしを見るがよい
228:デフォルトの名無しさん
23/01/29 03:30:21.89 FVd++fbJM.net
>>223
リバースブルートフォースなんて大層な名前が付いてるけど、単なるブルートフォースだろ
凍結直前までチャレンジして、失敗したら次を狙うのと何も確率は変わらん
229:デフォルトの名無しさん
23/01/29 07:05:12.39 ksaPk66E0.net
何回で凍結するのかはサイトによって違うのに凍結直前までとかスーパーハカーかよw
230:デフォルトの名無しさん
23/01/29 07:32:46.54 6KJkihSb0.net
>>221
あんたにはそう聞こえたのか
人の言葉をいちいち曲解する底意地の悪い耳してんな
人格欠陥者め
231:デフォルトの名無しさん
23/01/29 07:33:20.09 8/1FN9ANM.net
ブルートフォースはパスワードの総当たり攻撃
リバースブルートフォースはIDの総当たり攻撃
232:デフォルトの名無しさん
23/01/29 07:52:37.42 ksaPk66E0.net
>>228
指摘されて人格攻撃w
技術板に向いてないからよそに行った方がいいぞ
233:デフォルトの名無しさん
23/01/29 09:01:19.16 6KJkihSb0.net
おまえの勝手な仮定が前提だからな
こっちにゃ指摘に聞こえてねえんだよ
ストローマン攻撃なんて幼稚な誤謬をするやつが
どの口で技術板に向いているとかぬかすんだアホが
234:デフォルトの名無しさん
23/01/29 09:20:35.03 ksaPk66E0.net
歪めてるんじゃなくて考慮不足を指摘されてるってことすら理解できてないのかw
235:デフォルトの名無しさん
23/01/29 09:45:54.12 6KJkihSb0.net
勝手な仮定といわれていることも何のことかわからんようだな
やべーやつw
236:はちみつ餃子
23/01/29 11:02:35.45 2OIx0YXk0.net
>>217
そういう使い方だとハッシュの強度は無意味。
判定している箇所を書き換えるだけで通ってしまうから。
237:デフォルトの名無しさん (ワッチョイ 0b01-hj3w)
23/01/29 12:32:40.26 ksaPk66E0.net
>>233
偏りの多いハッシュ関数の話だろ
そういう条件を考慮してないアホって言う指摘
238:蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-yGaH)
23/01/29 12:41:06.40 GBa/Exsdd.net
>>235
だったら、こういう場合どうすればいいの?
教えて下さい。お願いします。
239:デフォルトの名無しさん
23/01/29 13:39:20.19 ksaPk66E0.net
偏りの少ないハッシュ関数使えばいいだけだろ
知能ないの?
240:デフォルトの名無しさん
23/01/29 13:45:16.85 CAd5BAJYM.net
ブルートフォースって一人だけ狙って、失敗したら他のアカウントを狙っちゃいけないのかよw
241:デフォルトの名無しさん
23/01/29 13:53:11.49 5EeyamesM.net
むしろ同じパスワードに対してアカウントを次々に変え続けて総当たりで狙うのがリバースブルートフォース
242:はちみつ餃子
23/01/29 15:19:25.16 2OIx0YXk0.net
>>236
機能するために必要なデータ (プログラム) を暗号化してしまうとかいった方法が考えられる。
必要なデータを得るために正しい鍵が必要なら正しい鍵がないとどうしようもない。
そのへんの一連の技術は「耐タンパー」とか呼ばれてるからググってみて。
ライセンスで制約を付けるから技術的なロックは頑張らないと割り切るのもひとつの手だし、個人製作のシェアウェアはそんなもんだよ。
243:デフォルトの名無しさん
23/01/29 15:24:38.66 ksaPk66E0.net
>>238
だからお前がそれもブルートフォースだと思うのは自由だけど人と会話する時はちゃんとリバースブルートフォースという用語を使わないとはあ?って言われるだけの話
244:蟻人間
23/01/29 19:12:22.05 GBa/Exsdd.net
>>241
ありがとうございます
245:デフォルトの名無しさん (ワッチョイ b75e-5WkL)
23/01/29 19:43:28.13 8uY3AZce0.net
>>237
知能ないと思いたければ
そう思っとけばいいじゃん
246:デフォルトの名無しさん
23/01/29 20:29:50.78 ksaPk66E0.net
>>243
うん、お前が誰かは知らんけどID:6KJkihSb0の知能は低いと思うよw
247:デフォルトの名無しさん
23/01/29 20:41:38.56 ZKIt/npKM.net
>>241
じゃあ、一人に付きパスワードを固定せずに数回試す事を全アカウントに行うのは何て言うんだよ?
248:デフォルトの名無しさん
23/01/29 21:03:50.50 teTK5f4i0.net
マルチリバースブルートフォース
とか、言ってみるテスト
249:デフォルトの名無しさん (ワッチョイ 0b01-hj3w)
23/01/29 21:18:32.78 ksaPk66E0.net
>>245
そんなアホなやつしかやらないような行動にまで名前が付いてるわけじゃないw
250:デフォルトの名無しさん (テテンテンテン MMb6-YANd)
23/01/29 21:42:40.12 ZKIt/npKM.net
>>247
IDと同じパスワードや逆にしてみて試す価値は有るだろ
251:デフォルトの名無しさん (ワッチョイ 4e63-+rQD)
23/01/29 21:45:50.48 teTK5f4i0.net
せっかくここまでアホな行為に名付けているんだから、途中で止めないで
252:デフォルトの名無しさん (スップ Sdba-7Y05)
23/01/29 21:50:17.04 BQ9oQ4XFd.net
ここまで不毛な議論ができるもんだなあw
253:デフォルトの名無しさん
23/01/29 21:57:38.60 ksaPk66E0.net
>>248
それはパスワード類推攻撃
お前みたいなアホ向けの攻撃方法だなw
254:デフォルトの名無しさん
23/01/29 22:04:36.79 CAd5BAJYM.net
>>251
じゃあブルートフォースとパスワード類推攻撃の違いを言ってみろ
わざわざ分けてるようだから、明確な違いがあるのだろう
255:デフォルトの名無しさん
23/01/29 22:36:52.56 EsKjhbWpM.net
国会クイズ大会かよ
256:デフォルトの名無しさん
23/01/30 06:58:02.02 xP88kyoga.net
>>252
ググればすぐわかることをいちいち聞くアホw
URLリンク(e-words.jp)
URLリンク(e-words.jp)
257:デフォルトの名無しさん
23/01/30 07:09:32.64 BI3s5DYMd.net
おまえに聞いてるんだろ
教えを請うのではなく
おまえをベリファイする意味で
答えがリンクじゃ失笑されるぞ
258:デフォルトの名無しさん
23/01/30 07:43:23.26 xP88kyoga.net
>>255
馬鹿過ぎて笑う
259:デフォルトの名無しさん
23/01/30 07:51:37.04 qAfCKr8z0.net
ID総当たりは回数制限をすり抜けられるんじゃないかな?
260:デフォルトの名無しさん (スップ Sd5a-VuUV)
23/01/30 09:35:36.72 BI3s5DYMd.net
>>256
直球の罵倒語だけか
失笑
261:デフォルトの名無しさん
23/01/30 09:59:45.60 deB8/dXTa.net
質問が馬鹿すぎて>>252が失笑されてるだけだぞw
俺が書いても同じようなこと書くし
262:デフォルトの名無しさん
23/01/30 10:00:48.80 deB8/dXTa.net
>>257
そりゃそのためにパスワード固定してId変えながらトライするんだし
263:デフォルトの名無しさん (スップ Sd5a-VuUV)
23/01/30 12:26:35.86 BI3s5DYMd.net
>>259
だから質問じゃねえっての
おまえ頼られてるとでも思ってんの?
プッバッカジャネエノ
264:デフォルトの名無しさん
23/01/30 12:48:34.85 vnpMotzDa.net
もう答え書いてるのにアホなのかな
そもそもLevel低すぎって言われてるだろw
265:デフォルトの名無しさん
23/01/30 14:15:02.42 dm4YanUU0.net
米国家安全保障局 (NSA) は 10 日、メモリ安全性の問題に対応するためのガイダンスを公開し、
可能な限りメモリ安全なプログラミング言語を使用するよう推奨した
266:デフォルトの名無しさん
23/01/30 14:15:26.05 BI3s5DYMd.net
他人の文書を持ってくるだけで説明したつもりになってるのか
健康美容の悪徳ビジネスに騙されるBBAと同じたなw
てめーは空っぽだと説明したに過ぎないんだが
267:デフォルトの名無しさん
23/01/30 16:10:08.09 cLMc+Aima.net
>>264
ならどう間違ってるのか指摘してみ
自分では何もできないチキンのくせにw
268:デフォルトの名無しさん
23/01/30 16:49:59.62 BI3s5DYMd.net
>>264
は? 間違っていようがいまいが関係ない
おまえは何も言ってないからな
なんか高卒くせえなおまえ
レポートだの論文だの書いてなさそう
269:デフォルトの名無しさん
23/01/30 16:50:32.46 BI3s5DYMd.net
アンカーミスった
>>265
270:デフォルトの名無しさん (ワッチョイ 4e63-+rQD)
23/01/30 17:22:08.99 dm4YanUU0.net
グーグルによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに
起因するという。同様にマイクロソフトも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関
するバグに起因すると述べている。C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、
Rustを採用するに至ったというわけだ。
271:デフォルトの名無しさん (オッペケ Sr3b-3un5)
23/01/30 17:56:21.35 XUR4uSv7r.net
また他人の文書を?
272:デフォルトの名無しさん
23/01/30 18:51:38.71 uxYUj7Ria.net
>>267
まだやるのかよ...
> 俺が書いても同じようなこと書くし
> 俺が書いても同じようなこと書くし
> 俺が書いても同じようなこと書くし
そもそもこんなの常識だろw
273:デフォルトの名無しさん
23/01/30 19:36:
274:39.96 ID:BI3s5DYMd.net
275:デフォルトの名無しさん
23/01/30 19:55:53.55 uxYUj7Ria.net
>>271
お前にレスしてるんだが?w
276:デフォルトの名無しさん
23/01/30 20:14:51.74 BI3s5DYMd.net
俺が言ってないことを引用してか?
幼稚な誤謬が止まらんやつだな
277:デフォルトの名無しさん
23/01/30 20:39:01.29 uC26F0Aa0.net
>>273
アホなの?
お前がわからんこと言ってるから再度書いてあげたわけだが
もしかして意図を汲み取れないってオチかなw
278:デフォルトの名無しさん
23/01/30 20:54:03.20 REdBvt7e0.net
おまえの勝手な妄言に意図なんてあったのかすらわからんな
279:デフォルトの名無しさん
23/01/30 21:08:25.32 uC26F0Aa0.net
結局>>252みたいな低レベルなレスして顔真っ赤ってかw
280:デフォルトの名無しさん
23/01/30 21:16:42.29 REdBvt7e0.net
>>276
>>273
おまえの頭蓋骨ぶち割って脳ミソがどんな奇形なのか見てみたいわw
281:デフォルトの名無しさん
23/01/30 21:35:36.15 wssO+tMCa.net
そんなクソみたいなレスしか返せないなら黙ってりゃいいのにw
282:デフォルトの名無しさん
23/01/30 21:54:10.97 REdBvt7e0.net
横レス君よ、231あたりのやり取り見てみな?
まあ本人だろうけどw
283:デフォルトの名無しさん
23/01/30 22:18:56.13 uC26F0Aa0.net
>>279
指摘されたアホがファビョってるだけだろw
284:デフォルトの名無しさん
23/01/30 22:29:46.75 REdBvt7e0.net
ねらー語100%でど真ん中な正体を現してんなw
285:デフォルトの名無しさん
23/01/31 07:05:48.06 YNMDboNb0.net
ねらー語とか言うねらー語使う>>281w
286:デフォルトの名無しさん
23/01/31 12:50:49.15 xZwYkSvIa.net
煽りじゃなくて率直に疑問なんだが
君ら何歳?
287:デフォルトの名無しさん
23/01/31 12:57:03.34 tu4JRhBG0.net
発達障害は精神年齢が極端に低い病気なんだぜ
288:デフォルトの名無しさん
23/01/31 14:42:28.64 YNMDboNb0.net
いきなり自己紹介されてもw
289:デフォルトの名無しさん
23/01/31 21:15:54.96 k9I+OMIE0.net
マウント取りたがるくせに大したこと言ってなくて
誰ひとり尊敬なんか集まらない寒ーいやつw
290:デフォルトの名無しさん
23/02/01 06:43:31.84 7PejvYvYa.net
まだまだ続く自己紹介w
291:デフォルトの名無しさん
23/02/01 07:42:58.57 cqn38iow0.net
Q.アスペルガーは嘘をつかないの?
A.嘘をつきまくる。本人は「嘘をついた自覚がない」と主張するが自覚はある。嘘を認めると立場が悪くなるので屁理屈を言って一向に認めない
Q.どうして文章を書くとき難しい単語を使いたがるの?
A.自分を賢く見せようとしているから。しかし内容がスカスカだったり矛盾しているので全然賢く見えない
Q.どうして攻撃的なの?
A.アドレナリン放出量が健常者に比べて多く、また人生が上手く行っていない場合が多いので他人に八つ当たりする(我慢できない)傾向が強いから
Q.どうしてひねくれたズレた回答ばかりするの?
A.アスペルガーは他人と被ることを嫌う。自分が特別な存在でありたいという願望が表れている。健常者の言う妥当な回答はアスペルガーにとっては平凡なつまらない回答。何か特別な凄いことを言おうとしてもそのような知恵がないので悪口とか意味の分からないことを口走ってしまう。
292:デフォルトの名無しさん (アウアウウー Sa47-hj3w)
23/02/01 08:24:41.56 Hf88nfPHa.net
病院の先生に言われたのか?w
293:デフォルトの名無しさん
23/02/01 12:53:11.72 MThDxGPg0.net
コードで語れ
294:デフォルトの名無しさん
23/02/01 13:33:50.91 NwXljVovd.net
goto hell;
295:デフォルトの名無しさん
23/02/02 04:21:08.56 +vgs1l/J0.net
サイズの決まっていない配列はスタックとヒープどちらに確保されますか?
例
char* file = ファイルデータ;
char copy[fileのlength]; // この配列
みたいなやつ
296:デフォルトの名無しさん
23/02/02 06:26:11.41 0H/6GH320.net
スタックじゃね
それ関数内の一時変数だろ
297:デフォルトの名無しさん
23/02/02 09:53:18.47 HFa0iCTPd.net
規格では未既定
現実はアセンブラ出力させて嫁
298:デフォルトの名無しさん
23/02/02 10:03:10.97 UVkNbOZP0.net
Cにサイズの決まってない配列は存在しないのだ
299:デフォルトの名無しさん
23/02/02 10:20:10.06 gL9XQdRL0.net
>fileのlength
ここに回答者をひっかけ様とする意図がありそう
300:デフォルトの名無しさん
23/02/02 10:22:42.67 Ww3cMMp8d.net
あれ可変長okになってなかったっけって思ったら変わっていってるのね
301:デフォルトの名無しさん
23/02/02 10:24:57.02 UVkNbOZP0.net
最近のCはできるん?じじいだから古いのしか知らんのだ
302:デフォルトの名無しさん
23/02/02 10:32:02.50 Ww3cMMp8d.net
適当にぐぐるとc99で対応してc11でoptinal扱い
以降はしらぬ
303:デフォルトの名無しさん
23/02/02 11:50:33.16 UVkNbOZP0.net
マジか、知らんかったわ
sizeofとかも可変になるんやね
304:デフォルトの名無しさん
23/02/02 12:28:52.64 HFa0iCTPd.net
>>295
extern FILE __iob[];
305:デフォルトの名無しさん
23/02/02 14:22:32.00 UVkNbOZP0.net
>>301
それ宣言ですやんか
306:デフォルトの名無しさん
23/02/02 14:37:47.00 3ThHJ/C20.net
sizeofて最近では()で対象を囲まなくてもいいんだってな
知らなかったw
307:デフォルトの名無しさん
23/02/02 14:52:29.74 aiTy/mzg0.net
最近もくそもANSI以降sizeof演算子に括弧が必要な時期ってあったの?
K&Rの頃でも要らなかった気がするけど
308:デフォルトの名無しさん
23/02/02 14:55:50.18 aiTy/mzg0.net
変数か単項式の場合な
型名とかはエラーだろうけど
309:デフォルトの名無しさん
23/02/02 14:56:34.41 H/TFSr7b0.net
型とオブジェクト(を表す式)のサイズを混同してるんじゃね?
複雑な式だと()があった方が読みやすい場合もあるけど、できる限りは明示的に使い分けたほうが
310:デフォルトの名無しさん
23/02/02 14:56:36.71 HFa0iCTPd.net
>>302
不完全型が「存在しない」ってこと?
311:デフォルトの名無しさん
23/02/02 15:03:22.53 HFa0iCTPd.net
別な話、BITMAPINFO構造体とかね
312:デフォルトの名無しさん
23/02/02 15:15:47.14 c8p/A0200.net
char*とvoid*なら問題ないのに
char**とvoid**だと代入時に警告が出るのはおかしい
ちなみにchar**とvoid*だと警告は出ない
313:デフォルトの名無しさん
23/02/02 15:19:10.22 yftorlUH0.net
char
お前らこれ、なんて読んでる(呼んでる)?
314:デフォルトの名無しさん
23/02/02 15:26:34.49 c8p/A0200.net
テスト
315:デフォルトの名無しさん
23/02/02 15:27:11.52 3ThHJ/C20.net
>>304
いらなかったのを勘違いして付けてたのかもしれん
ちなみに1990年代HP-UX上で開発してた時代の話です
316:デフォルトの名無しさん
23/02/02 16:06:25.05 0H/6GH320.net
>>310
チャー
>>294
つうかヒープに確保するのはmalloc,calloc,reallocだけだと思ったら未規定なのか
317:はちみつ餃子
23/02/02 18:25:47.28 hGGP2LZA0.net
>>313
言語仕様上は寿命が規定されているだけで、どこから確保するなどという詳細はない。
スタックとかヒープとかいう用語すら出てこないよ。
318:デフォルトの名無しさん
23/02/02 18:27:38.70 0H/6GH320.net
>>314
なるほどね
319:デフォルトの名無しさん
23/02/02 19:09:34.25 UVkNbOZP0.net
>>307
いや、なんかすまんかった
許してくれ
320:デフォルトの名無しさん
23/02/02 21:53:34.66 UmPclByQ0.net
>>315
世の中には汎用機みたいにハードウェアスタック持たないマシンもあるしね
321:デフォルトの名無しさん
23/02/02 22:48:09.79 hiwLlcVmd.net
void hoge( char *src )
{
char hogebuf[strlen(src)+1];
strcpy( hogebuf, src );
...
}
みたいな使い方か
仕様にはないけど慣例としてローカル変数はスタックに取られるだろう
static char hogebuf[strlen(src)+1];
とするとデータセグメントに取られるがコンパイル時にサイズが決定できないのでコンパイルエラーになる
322:デフォルトの名無しさん
23/02/02 22:58:23.69 gL9XQdRL0.net
_alloca 使ってみるとか
323:デフォルトの名無しさん
23/02/03 02:49:42.07 y/daVwxe0.net
普通スタックに取られるallocaがfree要らずでプロトタイピングに簡便だね
スタックだからBOするし、しない保証も得られないけど
ちゃんと固定長バッファ用意したり、ヒープ利用を考えるのは、とりあえず動くもんが出来てからやる派
324:デフォルトの名無しさん
23/02/03 11:57:56.75 31rfnruOM.net
c言語の標準入出力ストリームの
本当に基本的なことなんですが
わからずに困っています。
教えてください。
std::ofstream stream;
ostream << "ABCEFG";
この入力した文字列の"ABCEFG"を
右側3文字を削除して"ABC"にするには
どうすれば良いのでしょうか?
325:デフォルトの名無しさん
23/02/03 12:14:25.95 J/8wCXdid.net
C++スレへ池
スレリンク(tech板)
326:デフォルトの名無しさん
23/02/03 12:29:37.05 31rfnruOM.net
再度スレ書込み致しました。
ご迷惑おかけ致しました。
327:デフォルトの名無しさん (スッププ Sdba-Ik/S)
23/02/03 20:02:26.07 MxUVRWYAd.net
>>318
この、外道が!
こんなんコンパイルエラーにしたる
328:デフォルトの名無しさん (ワッチョイ 7a4a-5WkL)
23/02/03 22:09:59.33 JOOyDdlj0.net
ハッシュ君うるさいよ
329:デフォルトの名無しさん
23/02/04 18:01:20.17 8KrfBFTv0.net
>>321
それはC言語ではない。
330:デフォルトの名無しさん (ワッチョイ cf79-p19T)
23/02/04 23:59:34.16 Av2vQos/0.net
C++は最初のアホなstream仕様から抜け出せずいまだに書式出力にすら苦労するのいいよね
331:デフォルトの名無しさん
23/02/05 00:32:35.28 T8+euhoq0.net
文字列に埋め込んで置き換えるほうが楽だもんね
332:デフォルトの名無しさん
23/02/05 00:58:06.90 7rKpaUoS0.net
文字配列(へのポインタ値)は普通デカいから、ostreamのビット幅以上に左シフトすると0になるか、signedなら多分UD
333:デフォルトの名無しさん
23/02/05 02:05:11.68 5cc7+aVs0.net
君の言っていることがよく分からない。
334:デフォルトの名無しさん
23/02/05 02:13:54.95 N1CrWJVM0.net
C++でも一度もiostreamなんか使ったこと無いわw
かっこいいとでも思ったのかな?w
335:デフォルトの名無しさん
23/02/05 14:25:38.00 5cc7+aVs0.net
そういや C++ の cout みたいなやつには printf() みたいなメソッドはないの?
Java だと System.out (java.io.PrintStreamクラス)に printf() が Java 1.5 から追加されたが。
336:デフォルトの名無しさん
23/02/05 14:52:22.62 T8+euhoq0.net
C++20からformatってのが追加されたそうな
337:デフォルトの名無しさん
23/02/05 14:56:17.20 D7iSXwqj0.net
>>332
c++20 から std::format
c++23 から std::print と std::println
338:デフォルトの名無しさん
23/02/05 15:16:48.89 5cc7+aVs0.net
>>333 >>334
ありがとう。あるにはあったか。
339:デフォルトの名無しさん
23/02/05 16:27:06.84 3hYaBabsM.net
C++20でstd::formatが追加されたよ
340:デフォルトの名無しさん
23/02/05 16:27:42.01 3hYaBabsM.net
リロードしてなかったのか…失礼
341:デフォルトの名無しさん
23/02/05 22:53:24.77 Xg2vo6vu0.net
char x=1
char y=2
上記のchar型変数のxとyを比較する際に関して質問させていただきます。
上記の変数に格納されている変数を比較する際はif文で問題ありませんか?
if(x==y)
それともmemcmpやstrcmpで比較するべきでしょうか?
342:デフォルトの名無しさん (ワッチョイ 3f7c-4osW)
23/02/05 23:00:33.79 N1CrWJVM0.net
問題無いよ
memcmp()は使えても
strcmp()は流石に無いわw
メモリにどう格納されているかなんてエンディアンやらで違うし
memcmp()はcharの配列での比較に普通は使うだろう
343:デフォルトの名無しさん (ワッチョイ 7f63-4osW)
23/02/05 23:06:30.35 aB7ZC8J00.net
strcmp使うと、yもxも文字列である想定で比較するから
メモリー上の配置次第で変な結果が出る可能性がある
344:デフォルトの名無しさん (ワッチョイ cfab-wNzk)
23/02/05 23:20:42.10 Xg2vo6vu0.net
ご教授いただきありがとうございました。
345:デフォルトの名無しさん
23/02/05 23:41:43.70 7rKpaUoS0.net
>>338
charは(ちょっと変わってるけど)整数型なので、当然数値比較でok
何か付け加えるとすれば、整数型だからといってcharと他の整数型と比較/同値テストを行うのは、Cの自明でない算術変換が落とし穴になりがちなので避けた方が賢明
>>339
!memcmp(&a, &b, 1)
的な?
その発想に感心
何の役に立つのか俺には思い付けないけど、面白いからヨシ!
346:デフォルトの名無しさん
23/02/05 23:51:31.50 N1CrWJVM0.net
>>342
memcmp()も良く考えてみたらどうメモリに格納されているか分からないから使えないよね
intelなどのリトルエンディアンならそれで比較可能だろうけど
今ビッグエンディアンのマシンがあるのか分からないけど、昔あったpowerpcなんかはビッグエンディアンだったね
347:デフォルトの名無しさん
23/02/05 23:59:54.19 7rKpaUoS0.net
>>343
aがアドレスの取れない変数なら&aの時点で自明にダメだね
上で提示した比較バイト数が1の特殊ケースに限っては単なるunsigned charとしての比較だから、エンディアンネスは関係ないのでは
348:デフォルトの名無しさん
23/02/06 00:52:52.00 X/MVAKzo0.net
>>343
ビッグエンディアンだろうとリトルエンディアンだろうと1バイトのcharの比較に影響しないんじゃね?
349:デフォルトの名無しさん
23/02/06 00:53:39.48 X/MVAKzo0.net
ちんこ被った
350:デフォルトの名無しさん
23/02/06 01:11:21.66 yYJiH9Ihd.net
複数byteから成るwordには並べ方の任意性はあるけど、単一byteからなるword内にbyteを並べる方法は一通りしかない、って事だね
351:デフォルトの名無しさん
23/02/06 01:12:53.01 7Y+tRqBu0.net
>>345
charで例えばchar a = 1でリトルエンディアンだとmemcmp()で1バイト比較でも大丈夫だろうけど
ビッグエンディアンの場合、プロセッサの制約次第だろうけど必ずしも
01と1バイトのみでデータが入っているとは限らず
00 00 00 01みたいに4バイトで格納されてるかも知れないから
どんなマシンでも動くという前提で作るなら辞めておいた方が無難かなという風に思った
352:デフォルトの名無しさん
23/02/06 01:14:24.69 7Y+tRqBu0.net
実際の所は分からないけど、char同士の比較は単にa == bで問題無いし
蛇足だったな・・・
353:デフォルトの名無しさん
23/02/06 01:38:26.50 LWec8Zrw0.net
エンディアンなんか関係ねーだろアホか
354:デフォルトの名無しさん
23/02/06 02:12:44.74 Dw7rHwSO0.net
>>348
処理系/マシンが同一なら問題無い
Cのcharをuint_32相当として保持するマシンが仮に有ったとして、Cがcharのつもりで書き出し/読み返しを行い、unsigned char(とその配列)として比較する限りはCから違いは見えないよ
だって高級言語だもの()
バイナリデータのやり取り、詰め物あり、他言語プロセスとの共有メモリなら適切に変換するルーチンが必要だけど、それはCに限らず全てのプログラムに当てはまる事
355:デフォルトの名無しさん
23/02/06 02:49:15.07 Dw7rHwSO0.net
32bit以下のデータを全て32bit値として扱うマシンを想定してるのかな?
それは最小アドレス単位、cで言うCHAR_BITSが32のマシンと言い換えられるよね
CHAR_BITSが何bitであろうが、cから見ればsizeof(char)==1である事には変わりがない
と言えば分かりやすいだろうか
356:デフォルトの名無しさん
23/02/06 06:44:27.92 xFQJ/1dca.net
>>340
変な結果どころかそもそも&xや&yの次のアドレスを読もうとすることあるから未定義動作だし
357:デフォルトの名無しさん
23/02/06 08:54:18.69 KoRl3hvD0.net
おそらく初心者であろう質問を深読みして暇をつぶすお前らに乾杯
358:デフォルトの名無しさん
23/02/06 11:15:52.75 t0SsOUx4a.net
MISRA-C 2004 の本がある。
MISRA-Cをやっていないと、2004の潜在型/2012の本質型が分からないはず
int 型未満の型を、4バイトに変換してから、元に戻す仕組み。
CPU には、int型未満のレジスタが無いので、使わない部分をマスクするしかない
こういう内部の仕組みは、C/C++ の本には載っていない
こういう変換を知っている香具師は、
むしろ初心者じゃなくて、かなり研究している香具師
普通の香具師は、こういう仕組みを知っているはずがないから。
C/C++の本には載っていないはず
359:デフォルトの名無しさん
23/02/06 11:23:50.95 KoRl3hvD0.net
そりゃ絶対とは言わないけどさ、詳しいのにあんな質問の仕方ならかなりひねくれてるわ
360:デフォルトの名無しさん
23/02/06 15:55:39.76 Pcm2g4vQ0.net
1 byte は 8 bit とは限らないってことだな。
1 octet は 8 bit 固定と決まっているが。
361:デフォルトの名無しさん
23/02/06 17:55:31.90 KoRl3hvD0.net
いやでもマシンによってバイトのサイズは変わるかもしれないけど、
少なくともC言語のchar型は8ビットでしょ?違うの?
362:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cf3e-F1up)
23/02/06 18:07:02.20 uFl4yuTv0.net
>>358
ちがうよ。 CHAR_BIT がなんのためにあると思ってんの。
363:デフォルトの名無しさん
23/02/06 18:13:28.24 X/MVAKzo0.net
>>355
そういうCPUの制約を気にしなくていいのが高級言語だと思うけど違うんかね?
そういうCPU相手のコンパイラならマスクするなり0埋めするなりしてるんじゃない?
想定外のCPU相手なら起こりえるかもしれないけど、それはしょうがないよね
364:デフォルトの名無しさん (スップ Sddf-WS7p)
23/02/06 18:36:57.74 Zh5BYfUjd.net
Cは処理系定義が至る所にあるからな
intが2byteの環境もあるし
x86(x64)しか使わないと決め打ちできりゃいいけど
しょぼいCPU向けのしょぼいコンパイラのこと考えなきゃいけないとかなり面倒くさい
365:デフォルトの名無しさん
23/02/06 19:21:28.86 zDYmZQkKa.net
>>360
> そういうCPUの制約を気にしなくていいのが高級言語だと思うけど違うんかね?
そういう人はJavaなりC#なりを使えばいいと思うよ
366:はちみつ餃子
23/02/06 20:45:09.59 uFl4yuTv0.net
>>360
システム記述言語として使うことが想定内にあるので高級言語の中では低級なほう。
半世紀前に登場した時点では高級だったかもしれんがそのときの事情を引きずり続けてたら高級になりきれないのもしょうがない。
367:デフォルトの名無しさん
23/02/06 21:35:59.24 T2gDixZS0.net
中の下あたり?
368:デフォルトの名無しさん
23/02/06 21:49:50.35 LM+FnE4L0.net
>>363
> 半世紀前に登場した時点では高級だったかもしれんが
当時すでにPL/1とかPascalとかあったのに何を言ってるんだか
369:デフォルトの名無しさん
23/02/07 04:23:47.45 pZBVLYXq0.net
高級比べなんてウルトラしょーもない比較してんの初めて見たwww
370:デフォルトの名無しさん (JP 0Hbf-lzBW)
23/02/07 08:13:05.30 RNTsodhvH.net
格納サイズが1octetな符号無し/符号付きの型
371:デフォルトの名無しさん (JP 0Hbf-lzBW)
23/02/07 08:15:09.01 RNTsodhvH.net
>>349
等しいかどうかだけなら
そこまで神経質にならなくても良いんじゃなかろうかと
372:デフォルトの名無しさん
23/02/07 08:51:22.05 X22gDAEx0.net
>>355
> CPU には、int型未満のレジスタが無いので
x86にはAL/AHレジスタがあるぞ
373:デフォルトの名無しさん
23/02/07 09:53:53.00 DwAJ4k/cd.net
>>359
つまりcharはマシンのバイトなのでmemcmpではバイトオーダーなんて気にしなくていいって話だろ
374:デフォルトの名無しさん
23/02/07 13:10:28.46 3xIDowU30.net
>>359
すまん、8ビット固定じゃなくて8ビット以上なんだな
>>370
char型は1バイト固定だからエンディアンは関係ないよな
375:デフォルトの名無しさん
23/02/07 17:31:48.89 I8JfvgXk0.net
>>360
Cは色々なCPUで使える使いやすいアセンブラのようなものと思った方が良い。
色々な工夫をしてあたかも高級言語であるかのように見える状態にまで持ち込んだのだ。
376:デフォルトの名無しさん
23/02/07 17:35:32.67 oBLl+Yrl0.net
高級アセンブラ
377:デフォルトの名無しさん
23/02/07 19:08:47.78 0Pg2e1tw0.net
名誉高級言語
378:デフォルトの名無しさん
23/02/08 04:20:38.79 sW7k1sH00.net
なるほどね
379:デフォルトの名無しさん (ワッチョイ 4f10-4osW)
23/02/08 08:22:16.03 iOvDDO6c0.net
UNIXの解説書に「UNIX OSの移植の為にC言語を開発した」的なことが書かれてたなぁ。
380:デフォルトの名無しさん (ワッチョイ 3fad-2sfl)
23/02/08 23:07:52.52 tLamaggb0.net
そうそう。
381:デフォルトの名無しさん (ワッチョイ 7fcf-EOzK)
23/02/08 23:18:47.11 IYzO9kXQ0.net
へーそうなんだ
デニスリッチーはそうは思ってないみたいだけど
382:デフォルトの名無しさん (ワッチョイ 7f63-4osW)
23/02/09 00:04:11.97 u6buTta60.net
デニスリッチーはゲームで遊びたくてC言語を開発した
383:デフォルトの名無しさん
23/02/09 06:30:22.83 p7lzjqd+M.net
>>376
その辺りの経緯はK&R本でも触れられてなかったっけ?
384:デフォルトの名無しさん
23/02/10 01:35:56.41 y8U7vNGg0.net
形にしたのはken, dmrだろうけど、個人的にはCの精神とCS的な観点はbwkに帰したい
the practice of programing, software tools (in pascal), the awk programing language、あたりからプロファイリング
ライターとしてずば抜けている、unixには特に拘らず節操無し、スタイルに拘りが強い、形式言語大好き
しかしk&rではセカンドオーサーだから、著作自体にどれだけ影響力あったかは?(言及あったっけ)
まあk&rは汚いコードを得意気に語るあたり、dmr成分多めな気がするなあ…
385:デフォルトの名無しさん
23/02/10 01:48:35.12 y8U7vNGg0.net
いやk&rなんだからファーストオーサーはkernighanだわ、素で間違えた
386:デフォルトの名無しさん
23/02/10 02:07:22.27 y8U7vNGg0.net
俺はunix系ソフトウェアツールはベル研が出してるカジュアル資料で学んだ口だけど、手元の年季入ってくたびれたハードコピーを漁るとほぼbwk著
URLリンク(i.imgur.com)
著者は意識してなかったけど、マジ伝道師
387:デフォルトの名無しさん
23/02/10 03:12:31.86 3+3yiXM/0.net
書籍はともかくC自体誰が作ったってデニスリッチーが1人で作ったんだろうが
なんで勝手にカーニハンに帰してんだよおまえの所業は朝鮮人よりヒドイだろw
388:デフォルトの名無しさん
23/02/10 04:20:45.54 y8U7vNGg0.net
>>384
日本PC市場でのPC向けUNIX(minix/bsd/linux)本格参戦前(90'後半?)の情報源は、彼に負う所が多かったろう、というバイアスはまあある
大学にでも所属してないとUNIX機に触る機会も無かったし、俺のように>>383のようなサンプルを見て仕様を想像しただろうアマチュア実装(だからmanページは付いてない)が流布していた
なぜCはUNIX文化から脱却できたのか?という(>>376を念頭に置いた)考察ね
bwkの著作にはCP/M, DOS, winプログラ厶の例が多いし、アーキテクチャ/OS間のポータビリティやアルファベット圏以外への進出を真剣に考えてた稀有な人なのは間違いなかろう
wchar_tやらを提唱したのはその一例だし、それを許容するためにC独特の柔軟な(=至る所unspecified)型/メモリモデルを拵えたわけで
あれ、今やどっちも負債になってるような…
いや理論上頑張ればできるけど、まあ頑張ればね?
389:デフォルトの名無しさん (テテンテンテン MM4f-1Ruw)
23/02/10 08:31:20.48 /qli6azmM.net
カーニハンのWikipediaのページには、C言語の作成には全く関わっていないと書いてあるぞ
出典のインタビューにはリッチーが全部やったと言っている
390:デフォルトの名無しさん
23/02/10 09:02:55.50 IpbZJCuZd.net
なんか色々とそれっぽい事書いてるけど中身全くないのにワロタ
391:デフォルトの名無しさん
23/02/10 13:52:45.73 u7Z+Ehuld.net
>>386
だからライターとしての側面を述べてるのだが
392:デフォルトの名無しさん
23/02/10 14:24:32.35 rXRs96IF0.net
相方を持ち上げるために
自分は何もしてないよと謙るやつか
393:デフォルトの名無しさん
23/02/10 15:51:06.46 OadphjcVd.net
wchar_tに関しては確か日本語版2版に訳者がKへ吹き込んだ、という記述が
いわゆるK&R以外にもK&R共著は無数にあるが、おおむねイノベーターがRでKがまとめ役というのは察せられるし、そこに異論はないよ
394:デフォルトの名無しさん
23/02/10 20:03:34.55 fRHwVLJ/a.net
おまえらかっこつけんな
395:デフォルトの名無しさん
23/02/10 21:52:14.87 CNGsx6gg0.net
LISPに言ってくれ
396:デフォルトの名無しさん
23/02/10 22:02:01.42 ECKlR5jZ0.net
カギ括弧で勘弁
397:デフォルトの名無しさん (ワッチョイ 8a79-sQVB)
23/02/11 17:33:42.32 naJCJAFi0.net
名前カニチャーハンぽいから仕事してなくても許すね
398:デフォルトの名無しさん
23/02/11 21:40:15.68 vXc/j/A4d.net
>>394
はずしたなw
399:デフォルトの名無しさん
23/02/12 05:54:47.01 DTNrGkO70.net
>>394
かに飯じゃないんだ。charは何処へ消えたの。
400:デフォルトの名無しさん (ワッチョイ 8aad-D0vN)
23/02/13 03:01:58.65 euuzmFvH0.net
Kani & chaRhan
401:デフォルトの名無しさん (テテンテンテン MMc6-Dj+E)
23/02/13 03:07:30.87 ww0US2bcM.net
こん平を思い出すな…
402:デフォルトの名無しさん
23/02/14 09:52:16.15 SWO7K81V0.net
カニ入ってる、あぁんリッチ~
403:デフォルトの名無しさん
23/02/14 15:36:46.24 aItu9g/Ad.net
ファミ通のお習字コーナーかよw
404:デフォルトの名無しさん
23/02/15 16:00:13.19 ficf9YEj0.net
最近、Cが熱いのは、どのフィールドですか?
pythonなら、人工知能、みたいな
405:デフォルトの名無しさん
23/02/15 16:1
406:5:56.41 ID:qFuD6UUNM.net
407:デフォルトの名無しさん
23/02/15 16:24:04.96 aDsLy0wQ0.net
純粋なCって実際使われている気がしないんだがなぁ
結局C++使ってるんじゃね?
組み込みとかでさえC/C++じゃなくなりつつあるような
408:デフォルトの名無しさん
23/02/15 16:44:40.14 FSuJDOWl0.net
LinuxはC一筋です
409:デフォルトの名無しさん
23/02/15 19:45:43.63 yIa7rkEJ0.net
Linux は Rust も使われ始めた。
URLリンク(codezine.jp)
410:デフォルトの名無しさん
23/02/15 20:07:02.73 D5gZ9dH30.net
>>403
自動車関係の組み込み開発してるけど純粋なC使ってるね
411:デフォルトの名無しさん
23/02/15 22:41:28.51 PTreX2Lr0.net
不純なCって...
412:デフォルトの名無しさん
23/02/15 22:43:54.06 FSuJDOWl0.net
年齢確認をちゃんとしましょう
413:デフォルトの名無しさん
23/02/16 08:38:15.82 XJzboKn0a.net
不純なCってObjective-Cとかかな
C++はもうCじゃないし
414:デフォルトの名無しさん
23/02/16 10:11:37.88 G6Y1BfCz0.net
表向きCってことにしてるけど、C++コンパイラでコンパイルしてて、ひっそりstringだけ使ってるみたいな?
415:デフォルトの名無しさん
23/02/16 11:50:52.25 xQKS9LtVM.net
0bリテラルやビットフィールド順序指示子などの独自拡張あり
416:デフォルトの名無しさん
23/02/16 11:53:11.52 jE/BygjJ0.net
C言語仕様に取り込んでほしかった
417:デフォルトの名無しさん
23/02/16 13:40:46.45 kLJI764s0.net
0bを0xに変換するフィルタくらいなら、すぐできるだろ
418:デフォルトの名無しさん
23/02/16 13:50:49.50 5p7a/1XmM.net
0bはC23で標準化されるよ
419:デフォルトの名無しさん
23/02/16 13:54:29.69 5p7a/1XmM.net
digit separatorも追加されたから
0b1100'0011'0101'0011
みたいな書き方が出来る
420:デフォルトの名無しさん
23/02/16 15:47:22.38 oZu+eRtF0.net
'がセパレーターなのか。
組み込みで0bが使える処理系は以前からあるけど、
VerilogやVHDLみたく0b1101_0100のようなセパレーターが使えなくてバグの元でしかなかった。
421:デフォルトの名無しさん
23/02/16 17:05:43.13 5AcA3bi5a.net
不純な C って Win32API のことかな
422:デフォルトの名無しさん
23/02/16 17:21:05.96 XEsPtkpG0.net
セパレータに'は文字リテラルとの曖昧性でパースが面倒そうな…
0b表記はtccでさえサポートしてる(セパレータ_, 'は不可)し、俺の普段使いで0b表記を受け付けないのは多分pccくらい
C界隈では区切り文字と桁数はロケールの管轄(闇)という事になってるけど、簡潔に明示指定できるだけで単純にデバッグ出力も読みやすくなるよね?
オクテット区切りなら
ooo_ooo、xx_xxやbbbbbbbb_bbbbbbbb
ニブル区切りはbbbb_bbbb
等
先行例としてlisp系のformatディレクティブを参考までに
"~[:][base,wid,pad,delim,]R"
Rは専用のb,o,d,xか、rで任意進数を指定
:はデフォルト(wid=3, delim=',)
例: "~:d"→123,456,789
423:デフォルトの名無しさん
23/02/16 17:37:10.74 CsQoVivgd.net
>>413
リテラル導入よりまずはprintf/scanfの強化が先かなと、コンパイラやプログラマがすり替えのも楽になるし
一々baseで割ってfputc、i%sep==0の時にはdelimを吐く、なんてコードを何回書捨てたか分からん
リテラル記法導入は文法に関わるので、あくまで標準は保守的に
formatディレクティブはもう既に混沌としてるから、独自拡張もサポート落とすも自由でいいかと
424:デフォルトの名無しさん
23/02/16 18:37:34.78 jE/BygjJ0.net
2進表記は8進表記より使い道多いと思う
425:デフォルトの名無しさん
23/02/16 19:38:40.25 LB1U3BvE0.net
>>419
printf はともかく scanf なんて使わんだろ
426:デフォルトの名無しさん
23/02/16 19:40:44.28 LB1U3BvE0.net
>>420
てか8進表記なんてun*xのファイルモードでしか使ったことないわ
しかも普通はdefineされたやつ使うから直接書くことはないし
427:デフォルトの名無しさん (ワッチョイ 6a36-D0vN)
23/02/17 10:35:53.81 49a3FDgU0.net
8進数なんて8bitPC時代のグラ512色関連以外で使用する場面あるのかと思ってたけど・・・そうか、アレか。
428:デフォルトの名無しさん
23/02/17 11:02:28.45 DgZQWw4l0.net
octal(リテラル表記)はutf-8の台頭でCで使う機会はかなり増えたと思うが
陽に扱うならだけど
msb2つを多バイト文字の継続フラグ等に割いてるから本質的には6bitで、hexだと人力では読むのも書くのも厳しい
429:デフォルトの名無しさん
23/02/17 11:27:19.29 DgZQWw4l0.net
xx表示だとffbb_bbbbの上4bitに対応するx=ffbbが任意な値に化ける
ooo表記だとff_bbb_bbbで良い感じ
430:デフォルトの名無しさん
23/02/17 13:16:42.61 w2wgHjMGM.net
10進数のテーブルデータ記述するのに桁合わせのつもりで先頭に0を書いた苦い思い出
431:デフォルトの名無しさん
23/02/17 13:53:50.60 2H95YDcjr.net
なんで8進定数のプレフィックスは0oじゃなくて0なんかね?
432:デフォルトの名無しさん
23/02/17 14:15:10.27 fMLNQIVeM.net
人間の指が4本だったら、普段使う数字が8進数になって、コンピューターとの相性も良かったのになw
433:デフォルトの名無しさん
23/02/17 14:24:53.50 vP8p7Q2U0.net
>>422
システムコールを使ったちょっとしたコーディングの場合、オープンモードはdefineされたやつ使うけど、ファイルモードは8進の値を直接指定することが多かった
open("foo", O_CREAT|O_RDWR, 0644)
ここに S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH なんて書いたことはないな
ちゃんとしたコーディングの場合にはファイルモードを指定する別途関数なり定数定義を用意してたりするからそっちの定義ではdefineされた値を使うことはあったけど
434:デフォルトの名無しさん
23/02/17 14:44:42.94 vP8p7Q2U0.net
直接openシステムコール使ってるオープンソースのプログラム、シェルあたりならやってそうだと思って簡単にアクセスできそうなソースコード探してみた
bash見つからなくてzshは見つかったので見てみたらやっぱり直接0600とか書いてるな
URLリンク(sourceforge.net)
その上でumask(0177)とかもやってる
435:デフォルトの名無しさん
23/02/17 18:22:15.54 G6mVZKAVd.net
ESCシーケンスを使うときは¥033
436:デフォルトの名無しさん
23/02/17 20:16:44.94 KJxAAApA0.net
>>430
まあ、コピーライト見たらわかる通りそういう時代だったしね
> * Copyright (c) 1992-1997 ポール・ファルスタッド
マジックナンバー警察じゃないけど流石に今時0777なんて書いてたらレビューで指摘するわ
437:デフォルトの名無しさん
23/02/17 20:50:25.13 vP8p7Q2U0.net
>>432
git のソースコードのリポジトリを clone したのがあったので、git grep O_CREATとかgit grep umask とかするとみんな0600とか書きまくりだった
git blame してみると2021年とか最近でもやりまくり
66e905b7dd0 (XXX 2021-08-25 22:16:46 +0200 82) fd = xopen(index_name, O_CREAT|O_EXCL|O_WRONLY, 0600
438:); 66e905b7dd0 (XXX 2021-08-25 22:16:46 +0200 252) fd = xopen(rev_name, O_CREAT|O_EXCL|O_WRONLY, 0600);
439:デフォルトの名無しさん
23/02/18 09:01:47.10 4a504/qwa.net
C#について教えてください! URLリンク(smartlabo-hp.com) 上記ページを見てログインボタンを作成しました。 このページ内にあるcsvファイルの内容に加えて同csvファイルの[2]にログイン状態という列を足したいです。 ログインしてない状態では[2]は常に0、ログイン成功したら[2]に1が書かれるようにするにはどうすればいいのでしょうか? ご教授よろしくお願いします。
440:デフォルトの名無しさん
23/02/18 09:17:57.34 /Gi8XN260.net
>>434
スレ違い
こっちでやれ
スレリンク(tech板)
441:デフォルトの名無しさん
23/02/18 09:20:32.20 /rOnqr64d.net
ハノイの塔 再帰のアルゴリズムがさっぱりわからない
442:デフォルトの名無しさん
23/02/18 09:21:30.09 /rOnqr64d.net
ハノイの塔 再帰のアルゴリズムがさっぱりわからない
443:デフォルトの名無しさん
23/02/18 09:36:15.97 AfjXtSgB0.net
スタックから覚えようね
444:デフォルトの名無しさん
23/02/18 10:11:08.15 4a504/qwa.net
>>435
すいません
445:デフォルトの名無しさん
23/02/18 12:46:07.82 /8v09ncn0.net
>>426
8進数なのに8と9が使える驚異の仕様だよ
446:デフォルトの名無しさん
23/02/18 12:50:39.59 /Gi8XN260.net
ctype.hに
isdigitとisxdigitがあるのに
isodigitがないというのが
その問題の根にある
447:デフォルトの名無しさん (ワッチョイ 1501-rc3u)
23/02/18 13:42:13.38 c4QxGie20.net
>>433
何を必死になってるのかよくわからんが老害の悪癖は治らないってだけの話かと
448:デフォルトの名無しさん (ワッチョイ 1501-rc3u)
23/02/18 13:44:46.64 c4QxGie20.net
>>440
規格では使えないことになってるしまともなコンパイラならエラーにすると思うぞ
449:デフォルトの名無しさん (ワッチョイ a397-vL47)
23/02/18 14:09:47.51 BJBnPVcc0.net
>>440
規格決めた人に問題がある
ゼロは避けるべきだった
450:デフォルトの名無しさん (ワッチョイ 3d12-+91A)
23/02/18 14:13:43.35 /Gi8XN260.net
みんな日常的によく使う8進定数「0」
451:デフォルトの名無しさん
23/02/18 15:46:52.83 ke/LtjiK0.net
そうか、オレは二進数の0をよく使う
452:デフォルトの名無しさん
23/02/18 16:01:46.62 /Gi8XN260.net
ソースコード上での記数法と
実行環境での表現を混同してる?
453:デフォルトの名無しさん
23/02/18 16:04:29.75 dElKqib40.net
>>444
じゃあ8で。
454:デフォルトの名無しさん
23/02/18 16:16:07.43 /Gi8XN260.net
なんでオーにしなかったのかとは俺も思う
特に小文字オーなら誤読しにくいし
455:デフォルトの名無しさん
23/02/18 16:31:09.02 nz9Z1NDi0.net
1文字でもキーワードを少なくしたかった当時のお洒落だったんだよ
8進表記はunix系OSが全滅すれば廃止でもいいと思うね
456:デフォルトの名無しさん
23/02/18 16:35:07.64 ke/LtjiK0.net
全滅するのに数百年はかかりそう
457:デフォルトの名無しさん
23/02/18 16:40:17.45 /Gi8XN260.net
キーワードつーてもサフィックスだからね
繋がった単語の中の部分なわけで
他の識別子との衝突の虞はない
458:デフォルトの名無しさん
23/02/18 16:42:06.93 /Gi8XN260.net
あ、しかし
int o33 = o33;
みたいになったらマズいのか
英字サフィックスは
459:デフォルトの名無しさん
23/02/18 16:47:35.72 J9rEVsST0.net
>>442
gitのソースコード、openだけじゃなくてファイルモードを引数に取る関数なんかもあるけど、誰もマクロ定数なんて使って無いや
全員老害か
460:デフォルトの名無しさん
23/02/18 16:47:37.88 ke/LtjiK0.net
"%05d" こんな風な指定して出力した10進数を、読み取らせても大丈夫だろうか?
461:デフォルトの名無しさん
23/02/18 16:49:48.25 c4QxGie20.net
>>453
馬鹿なの?
普通に 0o01234567 だろ
462:デフォルトの名無しさん
23/02/18 16:50:05.14 FZadOySQ0.net
>unix系OSが全滅すれば
泥もiOSもunix系だよね?
ゲーム機も基本OSは・・・
463:デフォルトの名無しさん
23/02/18 16:52:50.83 6dDb+no40.net
(8じゃなく)6の倍数bitワードのマシンで産まれた痕跡だっけか
>>443
8と9が混じってるかどうかで8進か10進か勝手に解釈を変える方がよっぽど厄介だから、不正として弾くのが正しいね
俺は8進が好きだし、幸いやらかした経験も無いけど
他言語では明示的な0oプレフィックスもよく見掛けるし、もちろん使えるなら使おう
464:デフォルトの名無しさん
23/02/18 17:02:18.46 c4QxGie20.net
>>454
しつこいね
具体的にどのコードの話でそいつがいつから作られてるのか書いてみ
465:デフォルトの名無しさん
23/02/18 17:08:03.05 QF/qRD4Qd.net
>>443
bad numberとか言われて
なんで特定の数字を差別するのか?キリスト教のなんかか?とまじで悩んだw
466:デフォルトの名無しさん
23/02/18 17:13:05.59 nz9Z1NDi0.net
IT業界でもwhitelist→allowlistとか言葉狩り起きてるしそのうち言語にまでLBGT配慮()きそうだわな
int ニガー = 07214545;
エラー:差別用語です
467:デフォルトの名無しさん
23/02/18 17:15:09.07 J9rEVsST0.net
>>459
例えばリポジトリ直下の copy.c で定義されている copy_file(dst,src,mode) その関数自身の定義に 0666 とか直接使っている
まあこの関数は 2008 年とかに作られたものだけど、その関数を使うコードが今月コミットされていて引数に 0666 直指定
a5792e9d092 xxxxxxxxxx 2023-02-06 20:08:11 +0100 2293) if (copy_file(dest, rebase_path_squash_msg(), 0666)) {
他 copy_file 使っているところも全部直指定
468:デフォルトの名無しさん
23/02/18 17:19:06.07 c4QxGie20.net
>>460
確かに最初見た時は俺も はあ?ってなったわw
469:デフォルトの名無しさん
23/02/18 17:19:18.78 J9rEVsST0.net
>>442
比較的新しめ?のnginxなんかは流石に関数の引数に 0600 とか書いてないけど、それでもOSのヘッダファイルの定数定義は使ってないな
自前の定義に #define NGX_FILE_DEFAULT_ACCESS 0644 とかだ
これも老害になっちゃう?
470:デフォルトの名無しさん
23/02/18 17:26:26.26 c4QxGie20.net
>>462
git は 15年以上前に初版が作られたソフトだしリーナスはもっと前からソフト開発してるだろ
ポリシーによるけどソースコードのコーディング方法を変えないことは珍しくないよ
>>464
nginx も 18年前のソフトだし作者のイーゴリ・ウラジーミロヴィチ・シソエフ
50歳超えな
471:デフォルトの名無しさん
23/02/18 17:27:46.90 nz9Z1NDi0.net
>>464
OS側の定義を使わないのは特定のOS依存をしたくないか見切りを付けてるからだな
むしろ老害避けなんじゃないの
472:デフォルトの名無しさん
23/02/18 19:21:30.21 hE3AXWNH0.net
0x 0o 0b (0d)
473:デフォルトの名無しさん
23/02/19 06:15:13.00 B9Nm4zxk0.net
否定から入ったり無礼な言葉ばかり使う人って他人から相談されなくなるよね
474:デフォルトの名無しさん
23/02/19 10:30:13.08 85faJvYM0.net
それって思いっきりアスペの特徴なんだよな
475:デフォルトの名無しさん
23/02/19 10:43:35.95 xrmlsZvMa.net
だからネットでイキってるんだろ
476:デフォルトの名無しさん
23/02/19 10:58:14.43 5TCni8wB0.net
ダヴィンチもエジソンもアインシュタインもモーツァルトもイチローも
みなアスペルガーなんだ
477:デフォルトの名無しさん
23/02/19 11:07:26.13 xSIr/CQB0.net
>>471
まあ、それはそうだと思うよ
長嶋(一茂じゃねーぞ)なんかもそうだと思う
478:デフォルトの名無しさん
23/02/19 12:33:47.26 rUsPVZJ7a.net
ダヴィンチもエジソンもアインシュタインもモーツァルトもイチロー並みの才能があれば煙たがられることなく受け入れられるということよ。
479:デフォルトの名無しさん
23/02/19 12:50:21.37 oybarVkGd.net
無知丸出しはこっちでやれ
スレリンク(tech板)
480:デフォルトの名無しさん
23/02/19 12:53:18.65 F5EkyCpBH.net
ムチムチ
481:デフォルトの名無しさん
23/02/19 13:01:28.32 yOeRloac0.net
>>449
英語では 0 (ゼロ) と書いて o (おー) と読むこともあるので、それが影響したのかも知れないね。
482:デフォルトの名無しさん
23/02/19 14:04:50.86 xSIr/CQB0.net
>>476
printf("%o\n", 1234);
とかできるからその説はちょっと弱いかな
483:デフォルトの名無しさん
23/02/19 14:48:58.38 5TCni8wB0.net
アスペルガーは自分に対しても他人に対しても容赦しないから
凡人に嫌われる
才能のせいではない
484:デフォルトの名無しさん
23/02/19 14:55:52.34 BF2g/YB8d.net
ギフテッドは必ずしも自閉症を伴わない
485:デフォルトの名無しさん
23/02/20 04:15:44.39 +uPK1ifA0.net
>>436
再帰をしないなら、コードを書けるの?
486:デフォルトの名無しさん
23/02/20 09:47:26.91 N/iEiUCGd.net
>>480 チャレンジしたことはないけど、たぶん再帰なしでも書けません。どうか御教示をお願いします。
487:デフォルトの名無しさん
23/02/20 09:50:41.85 N/iEiUCGd.net
ハノイの塔は再帰でしか解けない
488:デフォルトの名無しさん
23/02/20 09:51:19.24 cTmdkEXkd.net
んなこたあない
489:デフォルトの名無しさん
23/02/20 09:57:18.63 KyZtaEjed.net
待ち行列やLIFOは再帰的な処理を非再帰にするときの友
490:デフォルトの名無しさん
23/02/20 11:00:02.06 Htkx1bCsd.net
再帰呼び出しする所をpushに変えてgoto最初
returnの所をpopに変えてgoto最初
時間があればそこからgotoを取り除く
gotoが輝く場面
491:デフォルトの名無しさん
23/02/20 11:21:38.14 N/iEiUCGd.net
>>485 goto文を使うのですね 覚えておきます
492:デフォルトの名無しさん
23/02/20 11:58:19.08 KyZtaEjed.net
アンチgoto教信者は近頃減ってきているが
絶滅はまだ先のようだな
493:デフォルトの名無しさん
23/02/20 12:38:57.43 sAm6cEmU0.net
スパゲティGotoをたんと召し上がれ!
494:デフォルトの名無しさん
23/02/20 13:04:25.72 Htkx1bCsd.net
再帰からループへの変換はgotoのある言語なら機械的にできるからね
存在すら許さない言語は発想を阻害してると言える
495:デフォルトの名無しさん
23/02/20 13:35:56.24 JqcJZDsUd.net
while(スタックが空になるまで){
pop();
...
}
って書き始めるけどな
496:デフォルトの名無しさん
23/02/20 21:19:52.57 I5iz8R+L0.net
>>490
戻りのpopはそれでいいけど呼び出しのpushは処理がぶった切れるから
gotoがないとかなりややこしい変換になるよ
497:デフォルトの名無しさん
23/02/20 23:51:00.80 7qph/rf50.net
>>485
push/pop はルール違反
それに二方向、多方向への再帰はそう簡単じゃないですけどね
二分木の全要素を列挙する非再帰プログラムを書いてください
498:デフォルトの名無しさん
23/02/21 00:08:57.34 Cn1Xq+JJ0.net
がんばってgoto無しで作ったりしてたなあ
499:デフォルトの名無しさん
23/02/21 06:59:46.53 1n1W4gUgd.net
push/popはルール違反て何それ?
500:デフォルトの名無しさん
23/02/21 09:59:11.37 MGN7/c1b0.net
「俺がルールブックだ」
501:デフォルトの名無しさん
23/02/21 10:33:24.95 5S8ZyEUUd.net
「ウリが蟹飯リッチニダ」
502:デフォルトの名無しさん
23/02/21 10:51:10.49 NudgdpLh0.net
豪華な蟹飯が思い浮かんだ
503:デフォルトの名無しさん (スプッッ Sd43-avQ1)
23/02/21 13:43:23.05 1n1W4gUgd.net
苫小牧だっけ?
504:デフォルトの名無しさん (アウアウエー Sa13-1XUy)
23/02/21 16:27:46.36 dWpsoJfPa.net
>>436
>>481
テスト
URLリンク(ideone.com)
505:デフォルトの名無しさん (ワッチョイ 755f-rVJW)
23/02/21 16:50:09.17 ncQgkmT30.net
チャットジピティれカ�
506:X
507:デフォルトの名無しさん (スププ Sd43-CAVk)
23/02/21 17:05:45.18 j4WOJdo9d.net
>>499 見事です 私はまだ初級なのでvectorだのcstdioなど見たこともありません
508:デフォルトの名無しさん (スップ Sd43-Tk/Z)
23/02/21 17:54:02.02 5S8ZyEUUd.net
>>499
お、動いた動いた!
509:デフォルトの名無しさん (ワッチョイ cb63-BTrK)
23/02/21 17:55:02.20 MGN7/c1b0.net
goto が一つもない・・・
510:デフォルトの名無しさん (アウアウウー Sa49-UkxH)
23/02/21 19:30:27.79 oAMbgY5Ra.net
goto文は禁じてではないかな?
C言語では
511:デフォルトの名無しさん (スプッッ Sd43-avQ1)
23/02/21 19:48:08.10 1n1W4gUgd.net
俺様ルールは興味ないから
512:デフォルトの名無しさん (ワッチョイ cb63-BTrK)
23/02/21 19:50:05.73 MGN7/c1b0.net
CPUレベルまで行くと、GOTOは使いまくりだろう
513:デフォルトの名無しさん (スプッッ Sd43-avQ1)
23/02/21 19:57:40.07 1n1W4gUgd.net
機械語1命令ごとにPCを更新するのもgotoかw
514:デフォルトの名無しさん (テテンテンテン MMcb-7AbM)
23/02/21 20:39:53.11 pHGJPw2cM.net
gotoなんて所詮関数内にしか飛べない
関数が小さければなんて事はない
巨大な関数はgoto以前に悪
515:デフォルトの名無しさん (ワッチョイ cb63-BTrK)
23/02/21 21:02:34.32 MGN7/c1b0.net
昔いた現場は、1関数ごとに設計書を何枚も書かされてたな
それでみんな、関数の数を極力減らしてた
行き着くところ初期とメインと終了の三つ
それぞれが何百行にもなってしまったw
516:デフォルトの名無しさん (ワッチョイ 2379-u8a6)
23/02/21 22:12:19.48 QJTSRl8U0.net
そういうのいいから
517:デフォルトの名無しさん (ワッチョイ e379-+91A)
23/02/21 22:59:26.21 fpEKur8e0.net
硬直化して目的を忘れた「管理」に泣かされたもんだけど
それは昭和も今も変わっとらんだろ
518:デフォルトの名無しさん (ワッチョイ cb63-BTrK)
23/02/21 23:48:29.43 MGN7/c1b0.net
プロジェクト管理はそのうちAIがやるようになるんだろうか
519:デフォルトの名無しさん
23/02/22 03:11:04.32 ZjvNTHuW0.net
AI「壊れるまで働け、人間共よ」
520:デフォルトの名無しさん
23/02/22 06:39:57.73 6aYkdgkrd.net
>>491
continueを知らないのか?
521:デフォルトの名無しさん
23/02/22 15:13:03.32 rwr+6TWF0.net
>>415
やはり構文解析器(プリプロセッサ含む)に手を入れないとデリミタに'は難しそうに思うの
暇だったので>>413を(ナイーブに)
# define b(n) (strint(#n, 1u))
# define t(n) (strint(#n, 2u))
# define o(n) (strint(#n, 3u))
# define x(n) (strint(#n, 4u))
unsigned
strint(const char cs[], const unsigned wt){
long d;
unsigned u=0;
do { // valid digis: ascii '0'..'^'
if((d=*cs)<0||d>'_'-'0'+1) continue;
u<<=wt, u+=d;
} while(*cs++)
return u
}
b('1100'1010'1111'1110)
b(1100_1010_1111_1110)
o(145;366)
x(<:!?>)
全て0xCAFEに等しい、ただし' が奇数個のケース、 b(1100'1010'1111'1110)
マクロ引数を区切る,の使用はプリプロセッサがエラー吐く(cc -Eの段階)
missing terminating '/" character
too much argument
etc. (pcc/tcc)
ex/m4とか外部ツールでプリプロセスするなら別だけど、c/cプリプロセッサの構文内では不可能に思う(当然リテラルとして自然な仕様拡張も)
522:デフォルトの名無しさん
23/02/22 15:22:17.41 mafEi4nvd.net
>>467
アセンブリやいにしえの言語は明示的なdecimal prefixを持ってるね
forthだと#123と変種?の&123
#の方がthe (decimal) 123と読めて個人的に好み
523:デフォルトの名無しさん
23/02/22 15:23:53.30 mafEi4nvd.net
the (decimal) number 123です
524:デフォルトの名無しさん
23/02/22 15:28:02.92 mafEi4nvd.net
299,792,458と書けたら素敵だけど
ds(299,792,458)が引数を区切る,と区別出来ないから無理だね
525:デフォルトの名無しさん
23/02/22 16:23:34.63 GDrSYSMbM.net
ほかの言語では、123_456_789の様にアンダーバーで区切るのが多い
Cでも出来たと思うけどなぜか'なんだよな…
アンダーバーが良かった
526:デフォルトの名無しさん
23/02/22 16:41:13.08 3MJ5isf30.net
C++に合わせたんでしょその方が都合がいいだろうし
527:デフォルトの名無しさん
23/02/22 16:52:25.15 3MJ5isf30.net
規格の紹介をしてる>>415に対してそれは解析器を変えないと難しいとか言ってる>>515は何なんだ?
C23でこうなります、なんだから難しいもクソもないと思うんだが笑
528:デフォルトの名無しさん
23/02/22 18:12:39.68 /HhOnmf9d.net
規格を批判してるんだが
529:デフォルトの名無しさん
23/02/23 02:20:36.04 zOdHjjZs0.net
まだワーキングドラフトだから対応するもしないのも自由だと思うし、c2xはアトリビュート関連くらいしか追ってないが、一応意見を
せめて不正なトークンとして弾ける約物にしてほしいな
0b10101011未対応(0cでも何でも)は不正な8進
トークン構成文字0b1010_1011なら不正な型サフィックスとして不正なトークンを報告できるので、ユーザに手直しさせるのも自明
パース状態をトグルする'はEOFまで食うので、エラーが報告されたとしてもcryptic
頻用したと仮定すれば、1/2の確率で釣り合うって字句解析をパスしてしまうのも厄介