• ベストアンサー

C言語に於けるバイナリデータ

C言語等に於けるバイナリデータは基本的に前ゼロのついた状態で電算機は記憶・処理しているのでしょうか?例えば1なら00000001のように。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

はいそうです。 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)

回答No.4

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 という処理が行われます

gayaldy21
質問者

お礼

ご丁寧に有難うございました。パソコンしか使わない人にはなかなか分からない部分ですね?

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

>32ビットコンピューターでは、 >0000,0000,0000,0001 ビット数が食い違っているため、 質問者さんが混乱を来しそうです。

gayaldy21
質問者

お礼

有難うございます。大まかなイメージを掴むことが出来ました。

noname#108260
noname#108260
回答No.1

型によって固定のサイズの2進数として扱うでしょう。 当然0にあたるビットが保持されていますし、負の数なら上位は1で埋まってると思います。

gayaldy21
質問者

お礼

有難うございました。いろいろ本を読んでみます。

関連するQ&A

専門家に質問してみよう