[C言語]2進数文字列を10進数の整数値に変換する関数

10進数を2進数文字列に変換する関数は前に作成してますが、逆に「1101」「10110000」などの2進数文字列を10進数の整数値に変換するC言語用の関数がなかったので作成してみました。

#include <stdio.h>
#include <string.h>

int bin2dec(char *src);

int main(void)
{
    char binstr1[] = "1101";     /* 13 */
    char binstr2[] = "10110000";    /* 176 */
    char binstr3[] = "1000000100000000";    /* 33024 */

    int dec = 0;

    dec = bin2dec(binstr1);
    printf("%s:%d(0x%02.2X)\n", binstr1, dec, dec);

    dec = bin2dec(binstr2);
    printf("%s:%d(0x%02.2X)\n", binstr2, dec, dec);

    dec = bin2dec(binstr3);
    printf("%s:%d(0x%02.2X)\n", binstr3, dec, dec);

    return 0;
}

/* 2進数文字列を10進数に変換 */
/* 10000000 -> 128, 1000 -> 8, 1000000000000000 -> 32768 */
int bin2dec(char *src)
{
    int dec = 0;
    for (;;) {
        if (*src == '1') {
            dec |= 1;
        }
        src++;
        if (!*src) {
            break;
        }
        dec <<= 1;
    }
    return dec;
}

実行結果
$ ./bin2dec
1101:13(0x0D)
10110000:176(0xB0)
1000000100000000:33024(0x8100)

[2325] Posted by kagahiro at 2013/07/03 00:10:55
オープン | 0 point | Link (1) | Trackback (0) | Comment (0)

キーワード

C言語 サンプル プログラム コード 2進数 プログラミング 

ジャパンのホームページ


[C言語]2進数文字列を10進数の整数値に変換する関数 関連リンク

[C言語]1バイト(8bit)の10進数を2進数の文字列に変換するコード
1バイト(8bit)の10進数を2進数の文字列に変換するコードのC言語版です。C言語では、PerlやPHPなどのように2進文字列に変換してくれる便利な関数は関数はないので、ビット演...

[C言語]2進数文字列を10進数の整数値に変換する関数 トラックバック

トラックバックURL :


[C言語]2進数文字列を10進数の整数値に変換する関数へのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前の投稿      次の投稿 >

アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (7 PV)
  2. [将棋]ユーチューバーのクロノさんが将棋ウォーズ運営からアカウント停止の警告を受ける #ソフト指し #複垢 #アカBAN (6 PV)
  3. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (5 PV)
  4. Google News (グーグルニュース)日本版 (5 PV)
  5. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (4 PV)
  6. 嬉野流開発者のたまごん(嬉野宏明)さんがソフト指し疑惑で将棋倶楽部24のアカウントを停止されてしまう #将棋 (4 PV)
  7. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (3 PV)
  8. Google Finance(グーグルファイナンス)日本版が表示されるようになってますが・・・ (3 PV)
  9. [C言語]UTF-8でエンコードされた文字列の文字数を取得するコード (2 PV)
  10. [gcc]iconvで文字エンコードを変換するサンプルプログラム (2 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (506 PV)
  2. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (76 PV)
  3. Google Finance(グーグルファイナンス)日本版が表示されるようになってますが・・・ (49 PV)
  4. [将棋]ユーチューバーのクロノさんが将棋ウォーズ運営からアカウント停止の警告を受ける #ソフト指し #複垢 #アカBAN (36 PV)
  5. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (33 PV)
  6. Google News (グーグルニュース)日本版 (33 PV)
  7. SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (32 PV)
  8. SQLのSELECT文でn件目からm件目までのレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL) (28 PV)
  9. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (28 PV)
  10. ウェブページを1回だけリロード(再表示)する方法 (21 PV)

アクセス統計

ディレクトリ

関連サイト