[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. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (5 PV)
  2. FC2動画やYouTubeなどから無料動画(映画やドラマ、アニメ、音楽など)を探す方法 (4 PV)
  3. [将棋]将棋実況ユーチューバーのクロノさんが朝日新聞のクレームで棋譜中継を配信中止 (3 PV)
  4. ウェブページを1回だけリロード(再表示)する方法 (2 PV)
  5. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (2 PV)
  6. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2 PV)
  7. 将棋ウォーズスーパープレミアムプラン販売開始、香川愛生女流三段のボイスが選択可能 #将棋 (1 PV)
  8. YouTubeドラマまとめ ドラマ・映画 -VideoNavi- (1 PV)
  9. 将棋ウォーズ「スーパープレミアムプラン」のボイスに室谷由紀女流二段 (1 PV)
  10. SQLiteのSELECT文でn件目~m件目までのデータを取得する (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2119 PV)
  2. 最新のGoogle News(グーグルニュース)日本版のRSSが取得できるURL (1511 PV)
  3. Google News (グーグルニュース)日本版 (1472 PV)
  4. Tumblr(タンブラー)のダッシュボードからおすすめ投稿を消す(非表示にする)方法 (383 PV)
  5. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (355 PV)
  6. [将棋]角換わり▲4五桂速攻(△6五桂速攻) #佐藤天彦名人 #三浦弘行九段 (249 PV)
  7. [Perl]UTF-8でエンコードされた文字列の文字数を取得するコード (231 PV)
  8. ウェブページを1回だけリロード(再表示)する方法 (196 PV)
  9. FC2動画やYouTubeなどから無料動画(映画やドラマ、アニメ、音楽など)を探す方法 (135 PV)
  10. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (133 PV)

アクセス統計

ディレクトリ

関連サイト