ザ・雑談スレ
- 1:名無しさん@故郷VIP2023/06/03(土) 00:16:41 ID:FzkB+/R20
- なんでもありのオールジャンルで雑談しようぜ
前スレ
http://hato.1ch.nl/test/read.cgi/hurusato/1425208965/
三スレ目やね過疎なふる速なのに
- 87:名無しさん@故郷VIP2025/02/13(木) 14:03:12 ID:Z8fdQTmW0
- >>86
8bitのCPU(Z80やら8080やら)でも通常は16bitだお
Cのそういう定義は元々はコンパイラ作る人が勝手に決めやがれ的な
もんだったけどだんだん後から定義を追加してったって歴史がある
だから、intなんかの定義が決められる前にあったものには新定義は
当てはめないようにしてる(互換性のため)
極論だけど、86が自分でコンパイラ作って、「俺のコンパイラでは
intは6bitだぞ!」て決めても別に構わない。
(違反にはならない。まあ顰蹙は買うがそれは別の話w。当然構わない
からってそんなことする人・した人はほぼいなかったわけで)
MSXやPC8001が現役の時代でもすでに16bitの機械は存在してて、かつ、
サーバーやらワークステーションやらでは使われていた
なので、8bit機用のコンパイラでもほぼint=16bitが普通だったわけ
現在は64bitCPUが当たり前になってるけど、慣例通りにintも64bitにって
するとあまりにも大きすぎるんで16bit・32bitが多いかなって感じ
- 88:名無しさん@故郷VIP2025/02/19(水) 21:48:38 ID:12X0H1X80
- >>87
非常にサンコス
もしかして大ベテランな方でしょうか
歴史的な意味合いやらは意外と整理されてないんで
こういう情報はすごくありがたいです
- 89:名無しさん@故郷VIP2025/02/22(土) 09:27:49 ID:1k7c92S20
- Cかあ
ベタで悪いがMSX-C手に入れてポインタとライブラリで挫折したヲレorz
- 90:名無しさん@故郷VIP2025/02/23(日) 14:48:26 ID:Cuu84FKL0
- 最底辺な質問ですみません
今のCPUは64bitが普通って聞いてるんですけど
メモリーの1単位ってCPUと同じじゃないんですか???
- 91:名無しさん@故郷VIP2025/02/24(月) 00:40:14 ID:xHqOjJBs0
- 今でも8バイトが最低単位じゃなかったかな確か
(1ビットとかはあるけど多分>>90が聞きたいことはそれじゃないと妄想)
CPUと同じっていうのは多分、アクセスできるor指定できる範囲のことだと
思う
CPUの内部はレジスタっていう値をセットしたり計算したりできる部分が
あるんだけど、メモリにアクセスしたい場合に何番地にアクセスせよって
指定をするんだけど、これもそのレジスタが担当してるんよ
Z80(8bitCPU)だとレジスタが8bitだから、指定できるアドレスの範囲は
0x00(0)〜0xFF(256)番地までしか読み書きできない
8086(16bitCPU)だと指定できる範囲は
0x0000〜0xFFFF(65535)番地まで
80486(32bitCPU)だと
0x00000000〜0xFFFFFFFF(4294967295)番地まで
(物理的に沢山メモリを積んでもOSやCPUが32bitだと4GBまでしか認識しない
のはこのため)
ちなみに実際の機械だと特殊な方法を使って無理やりメモリ範囲の制限を
超えてたのも結構あったよw
たとえばPC-98とか。16bitCPU+MS-DOSなのに8MBとか読めたりw
- 92:名無しさん@故郷VIP2025/02/24(月) 11:18:40 ID:Kpl1t8DG0
- ごめん手癖で書いて単位表記ゆれゆれだった
1ビット( 1bit )
0と1しか表現できない。電気的な最低単位
1バイト( 1Byte )
8ビットのこと。256まで表現できる
多くのPCでの最低単位
CPUの能力を表す場合、なぜかbitを使う。
Z80や8080は「1バイトCPU 」と言えなくはない気がするけど
表現は「 8ビットCPU 」とほぼ統一されてる
1メガバイト( 1MB )
1024バイト( 8,168ビットといえなくもない?)
後は1024倍ごとに単位が上がっていく
なんで1000じゃないのかは二進数表現なんでどうしようもないんで
そういうもんと考えるしかない
ちなみに、1MBは1024Byteだけど、1000Byteってのも存在するよね?
これとの混同をしないように、1000Byteは1000バイト、1024バイトは1MBと
表記するのが普通
23KB