- ベストアンサー
C言語に於けるバイナリデータ
C言語等に於けるバイナリデータは基本的に前ゼロのついた状態で電算機は記憶・処理しているのでしょうか?例えば1なら00000001のように。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
はいそうです。 32ビットコンピューターでは、 ただ 1 と書くとint型として扱われるので2進数で 0000,0000,0000,0001 という値が処理されます。 unsigned char i = 1; と書くとメモリには、2進数で 0000,0001 という値が1バイトの容量を使って記憶されますが、 i + 2; という計算をすると、2進数で、 0000,0000,0000,0001 + 0000,0000,0000,0010 という処理が行われます。
その他の回答 (3)
- johnsmith_
- ベストアンサー率34% (8/23)
No.2です。すみません、0の数が違っていました。 正しくは、 はいそうです。 32ビットコンピューターでは、 ただ 1 と書くとint型として扱われるので2進数で 0000,0000,0000,0000,0000,0000,0000,0001 という値が処理されます。 unsigned char i = 1; と書くとメモリには、2進数で 0000,0001 という値が1バイトの容量を使って記憶されますが、 i + 2; という計算をすると、2進数で、 0000,0000,0000,0000,0000,0000,0000,0001 + 0000,0000,0000,0000,0000,0000,0000,0010 という処理が行われます
- asuncion
- ベストアンサー率33% (2127/6289)
>32ビットコンピューターでは、 >0000,0000,0000,0001 ビット数が食い違っているため、 質問者さんが混乱を来しそうです。
お礼
有難うございます。大まかなイメージを掴むことが出来ました。
型によって固定のサイズの2進数として扱うでしょう。 当然0にあたるビットが保持されていますし、負の数なら上位は1で埋まってると思います。
お礼
有難うございました。いろいろ本を読んでみます。
お礼
ご丁寧に有難うございました。パソコンしか使わない人にはなかなか分からない部分ですね?