プロが教えるわが家の防犯対策術!

https://www.grapecity.com/japan/powernews/column …

ビット演算子

表1にCのビット演算子を掲げておきます。ビット演算とは言っても、扱う値はバイト単位などCの一般的な整数のデータ型です。ビット演算子は、それらの値をビット単位で計算します。

ビットシフト演算(<< >>)~2倍と1/2

例えばunsigned char型の1は、2進数では"00000001"という形のビット列(ビットパターン)になります。これを1桁左にずらす(シフトする)と"00000010"となります。ずらしてあふれた左端の0は消え、空いた右端には0が入ります。

"00000001"は10進数の「1」、"00000010"は10進数の「2」です。つまり、ビット列を左に1桁シフトすると値は2倍になるのです。
-----------------------------------------
 以上ですが、C言語の、ビット演算の解説の抜粋です。ビット演算はまだ覚えたてですが、"00000001"整数1の頭にわざわざ、0を沢山
つける目的は何なのでしょうか!?
 よろしくお願いします。

A 回答 (6件)

>「64 だし、文字としてみると '@' 」とは!


>  どういったことなのでしょうか?

@ の文字コードが、"01000000" だということです。ただし、文字コードをビット列で書くとかさばるので、普通は文字コードは16進文字列で表しますが。

ビット列で表現された文字コード表をみると、
http://charset.7jp.net/sjis.html
上位4ビットが"0100"で、下位4ビットが"0000"のところに、@ と書いてあるでしょ。

この表では、シフトJISと書いてありますが、先頭128個の文字(ビット列で"00000000"から"01111111"まで)は、ほとんどの文字コードで共通です。
    • good
    • 0

「整数1の頭に0をつけている」ではありません。



「"0または1"が8個並んだもの」です。
数字じゃなくて、ビット列の話です。そう書いてありますよね?
>"00000001"という形のビット列

例えば、"01000000" というビット列を数字としてみると、64 だし、文字としてみると '@' です。
"01000000"というビット列があるだけでは、数字なのか、文字なのか、それ以外の何かなのかは不明。

この回答への補足

 御回答誠にありがとうございます。

 「64 だし、文字としてみると '@' 」とは!
  どういったことなのでしょうか?
 (ユニコードかなと思いましたが・・・?)
  
 せっかくご回答くださった上に、また質問して申し訳ございませんですが、
よろしければ、教えていただけたら光栄です。
 

補足日時:2014/03/27 04:05
    • good
    • 0

> 例えばunsigned char型の1



なので8ビット存在するからです。
    • good
    • 0

0埋めして8桁にすると2進数の10と10進数の10の区別を付けやすいから。


普通はプレフィックスを付けて区別するものですけどね。
    • good
    • 0

その方が分かりやすいから。

    • good
    • 0

1バイト=8ビットなので、8桁表示にしているだけです。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!