忘れる前に覚書。優しい文章を目指します。
ザ・覚書 ザ・覚書
出来るだけ子供にも、わかりやすいように書いて行きたいと思います。

PCバージョンでサイトを表示しています。
【ザ・覚書 3クリックアンケート実施中】
暑さの一番の原因はなんだと思いますか?
あなたの支持する政党はどの党ですか?

C言語 1バイトの数値内の何ビット目に1があるか返す関数例

☆C言語 1バイトの数値内の何ビット目に1があるか返す関数例
今のページの関連ページのリストへ
ザ・覚書のトップページに戻る


#include<stdio.h>
///////////////////////////////////////////////////////////////////////
//1バイトの数値内の何ビット目に1があるかかえす関数 
//ビットの並びは最上位7、最下位0とする
//Buf:1バイト数値
//No :何回目に出てきた1か
//戻り値:ビット番号
//呼出使用例:Buf:1バイトデータ(例:unsigned char Buf;  Buf=0x88;)
///////////////////////////////////////////////////////////////////////
int Bit_1_Sagasu( unsigned char Buf,int No )
{
    int i;          //ビットカウント
    int Flag = 0;   //Noカウント
    for( i=0; i<8; i++ ) // ビット
    {
        if( (Buf&(1<<i)) == (1<<i) )
        {
            if(Flag==No)
            {
                return i; // ビット番号を返す
            }
            Flag++;
        }
    }
    return -1;
}


「補足説明」
 Buff & (1<<i):ビットの1部分(1つのビット)と1との&を出す、
        これでビットが1かどうかわかる
 1<<i    :ビットの1部分(1つのビット)
        ずらしたものには0が入る

需要はないかと思いますが。


記述:2010年12月頃
別サイトより移動:2012年1月頃





Twitter Facebook Google+ はてな Pocket LINE




一言掲示板です。なにかありましたら以下に書いて書き込みボタンを押して下さい。
管理人による書き込みの確認後、荒らし書き込みでない場合に表示させていただきます。
悪意ある書き込みや挑発的な書き込みと思われる内容は、表示させません。
その為、ちょっと書き込みから表示までに時間がかかってしまいます。ご了承下さい。

お名前

コメント




ファイル関連
C言語 ファイルオープン・クローズ
乱数
C言語 乱数発生関数例
Bitで遊ぶ
C言語 1バイトの数値内の何ビット目に1があるか返す関数例
C言語 1バイトの数値内の指定ビットの値を返す関数例
C言語 1バイトの数値内の指定ビットの値を1にする関数例
C言語 1バイトの数値内の指定ビットの値を0にする関数例
C言語 1バイトにいろいろな状態を入れてみる例
文字列操作
C言語 整数値を文字列に変換する関数例
C言語 ”ダブルコーテーションを文字列として扱う場合
C言語 CSVファイル形式のファイル内容を読み込む関数例
C言語 strtokでは連続トークンを正しく読み込まない
VisualC
C言語 とにかく自力でウィンドウ
C言語 UTF-8のファイル操作
その他
メモリリーク GDI関連のチェック方法
作ってみたアプリ
BMPの部分保存をするアプリ「ビットマップファイル部分取得」
16進数を自動加算してテキスト出力するアプリ
テキストファイル(txt)を字幕ファイル(srt)に変換するアプリ
C#
C# ファイルオープン・1行ずつ読み込み・書き込み・クローズ
C#のEXEは、中のソースコードのロジックを簡単に見られてしまうかも知れない
【ザ・覚書 3クリックアンケート実施中】
暑さの一番の原因はなんだと思いますか?
あなたの支持する政党はどの党ですか?

今のページの関連ページのリストへ
ザ・覚書のトップページに戻る
全ページのリストへ