差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

and_orの使い方 [2010/06/23 01:34]
member 作成
and_orの使い方 [2010/06/23 01:40] (現在)
member
ライン 2: ライン 2:
--andマスク +=====andマスク===== 
-andマスクとは、andを使って必要な情報だけを取り出す事です。 +andマスクとは、andを使って必要な情報だけを取り出す事です。\\  
-次の章にある、ビットシフトと組み合わせると効果的です。+次の章にある、ビットシフトと組み合わせると効果的です。\\
-例えば16bitのデータ(data)のうち、真ん中の8bitだけ欲しい時(result)、次のようにすると、上手いことその部分だけを取り出す事ができます。+例えば16bitのデータ(data)のうち、真ん中の8bitだけ欲しい時(result)、\\  
 +次のようにすると、上手いことその部分だけを取り出す事ができます。\\
-#highlight(){+<code c>
result = data & 0x0ff0; result = data & 0x0ff0;
-}+</code>
-この後、4bit左にシフトしておくと更にデータが扱いやすくなります。 +この後、4bit左にシフトしておくと更にデータが扱いやすくなります。\\  
-(ビットシフトは次章参照) +(ビットシフトは次章参照)\\  
-#highlight(){+<code c>
result = (data & 0x0ff0) >> 4; result = (data & 0x0ff0) >> 4;
-} +</code> 
-または + 
-#highlight(){+または\\  
 +<code c>
result = (data >> 4) & 0x0ff; result = (data >> 4) & 0x0ff;
-}+</code>
- +=====orで書き込む===== 
- +orを使って、変数の一部だけを1にできます。\\  
--orで,変数の一部だけを1にする。 +例えば、H8-3052でP8の 0,1,2 bit をhighにしたい時は\\  
-orを使って、変数の一部だけを1にできます。 +<code c>
-例えば、H8-3052でP8の 0,1,2 bit をhighにしたい時は +
-#highlight(){+
P8.DR.BYTE = P8.DR.BYTE | 0x07; P8.DR.BYTE = P8.DR.BYTE | 0x07;
// "|" がorの演算記号 // "|" がorの演算記号
//(Shiftを押しながらBackSpaceの左にあるキーを押すと出る) //(Shiftを押しながらBackSpaceの左にあるキーを押すと出る)
-}+</code>
-注意しなければならないのは、元が0であろうと1であろうと関係なしに1にするという点です。 +注意しなければならないのは、元が0であろうと1であろうと関係なしに1にするという点です。\\  
-andと組み合わせて使うと大抵何でもできます。+andと組み合わせて使うと大抵何でもできます。\\
--exor(xor)を使って特定のbitを反転させる +=====exor(xor)で反転させる===== 
-exorは色々と難しい事が書かれていますが、ここで注目するのは、 +exorは色々と難しい事が書かれていますが、ここで注目するのは、\\  
-※ある値=0,1のいずれかとすると、+※ある値=0,1のいずれかとすると、\\
-「ある値と0をexorすると結果はある値」 +「ある値と0をexorすると結果はある値」\\  
-「ある値と1をexorすると結果はある値を反転させた値」+「ある値と1をexorすると結果はある値を反転させた値」\\
-という性質です。 +という性質です。\\  
-これを使えば、LEDを点滅させるプログラム等が楽に書けます。 +これを使えば、LEDを点滅させるプログラム等が楽に書けます。\\  
-それ以外にも色々と使い道はありますが・・・。+それ以外にも色々と使い道はありますが・・・。\\
-たとえば、3052で、P8の0,2bit目を反転させたい時 +たとえば、3052で、P8の0,2bit目を反転させたい時\\  
-#highlight(){+<code c>
P8.DR.BYTE = P8.DR.BYTE ^ 0x05; P8.DR.BYTE = P8.DR.BYTE ^ 0x05;
-} +</code> 
-というように書く事ができます。 +というように書く事ができます。\\  
- +\\  
- +\\  
- +\\  
-以上。 +以上。\\  
-ここで紹介したのは基本的な使い方なので、色々と応用できると思います。 +ここで紹介したのは基本的な使い方なので、色々と応用できると思います。\\  
-bit演算を使う事で大幅に書く量が減ったり、実行速度が上がったりするので +bit演算を使う事で大幅に書く量が減ったり、実行速度が上がったりするので\\  
-使えるようになるとお得な部分だと思います。+使えるようになるとお得な部分だと思います。\\
/home/users/2/deca.jp-mice/web/cgi/dokuwiki/data/attic/and_orの使い方.1277224463.txt.gz · 最終更新: 2010/06/23 01:34 by member
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0