[C言語]1バイト(8bit)の10進数を2進数の文字列に変換するコード

1バイト(8bit)の10進数を2進数の文字列に変換するコードのC言語版です。

C言語では、PerlやPHPなどのように2進文字列に変換してくれる便利な関数は関数はないので、ビット演算子を使ってビットのオン・オフを判定して、2進文字列を作成していくしかありません。

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

void dec2bin(char src, char *dest);

const int buf_size = 9;

int main(void)
{
    char buf[buf_size]; /* 変換後の2進文字列を受け取るための領域 */
/*    char str1[] = "abcdefg"; */
    char str1[] = "あいうえお";
    char *cp;

    int num = 1;
    for (cp = str1; *cp; cp++) {    /* 文字数分処理 */
        memset(buf, '\0'sizeof(buf));
        dec2bin(*cp, buf);
        printf("%d:%s (0x%02.2X)\n", num, buf, 0x000000ff & *cp);
        num++;
    }

    return 0;
}

/* 1Byte(8bit)の10進数を2進数の文字列に変換 */
void dec2bin(char src, char *dest)
{
    const int bit_size = 8;
    int i;
    for (i = 0; i < bit_size; i++) {
        dest[i] = (0x80 & src) ? '1' : '0';
        src <<= 1;
    }
}

解きながら学ぶC言語
ソフトバンククリエイティブ 著者:柴田 望洋,肘井 真一,高木 宏典,赤尾 浩


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2253] Posted by kagahiro at 2012/12/21 17:23:17
オープン | 0 point | Link (6) | Trackback (0) | Comment (0)

キーワード

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

ジャパンのホームページ


[C言語]1バイト(8bit)の10進数を2進数の文字列に変換するコード 関連リンク

[gcc]iconvで文字エンコードを変換するサンプルプログラム
単にテキストファイル等の文字エンコードを変換するのであれば、iconvコマンドを使用して変換すれば良いのですが、プログラム内部で取得した文字列の文字エンコードを変換したい場合もあります。以下のプログラムはL...
[PHP]10進数を2進文字列に変換するコード
PHPの場合は、ズバリ10進数を2進文字列に変換できるdecbin関数があるので、decbin関数を使用すればいいのですが、もちろん、Perlの場合と同様にビット演算で2進文字列に変換することもできます。以下は、そのサンプル...
[Perl]1バイト(8bit)の10進数を2進数の文字列に変換するコード
Perlの関数を使用して、以下の手順で10進数を2進文字列に変換することができます。sprintf関数で10進数を16進文字列に変換pack関数で16進文字列をバイナリーにパックunpack関数で2進文字列に変換例えば、文字列の先頭...
[C言語]UTF-8でエンコードされた文字列の文字数を取得するコード
C言語のstrlen関数では文字列の長さとして返ってくる値はバイト単位となるので、UTF-8でエンコードされている場合、漢字、ひらがな、カタカナなどは1文字で3となってしまいます。Webアプリケーションのテキスト処理で...
[C言語]UTF-8でエンコードされた文字列の部分文字列を取り出すコード
C言語のstrncpy関数やmemcpy関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して部分文字列を取り出すことができません。そこで半角英数も全角文字も1文字として部分文字...
[C言語]2進数文字列を10進数の整数値に変換する関数
10進数を2進数文字列に変換する関数は前に作成してますが、逆に「1101」「10110000」などの2進数文字列を10進数の整数値に変換するC言語用の関数がなかったので作成してみました。#include <stdio.h>#inc...

[C言語]1バイト(8bit)の10進数を2進数の文字列に変換するコード トラックバック

トラックバックURL :


[C言語]1バイト(8bit)の10進数を2進数の文字列に変換するコードへのコメント


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

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

< 前の投稿      次の投稿 >

アクセスランキング

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

  1. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (2 PV)
  2. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (1 PV)
  3. Google News (グーグルニュース)日本版 (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (1941 PV)
  2. Tumblr(タンブラー)のダッシュボードからおすすめ投稿を消す(非表示にする)方法 (167 PV)
  3. グーグルニュース(Google News)日本版が表示できるURL (162 PV)
  4. Google News (グーグルニュース)日本版 (160 PV)
  5. [将棋]将棋実況ユーチューバーのクロノさんが朝日新聞のクレームで棋譜中継を配信中止 (155 PV)
  6. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (154 PV)
  7. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (149 PV)
  8. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (125 PV)
  9. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (109 PV)
  10. ウェブページを1回だけリロード(再表示)する方法 (77 PV)

アクセス統計

ディレクトリ

関連サイト