[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進数 プログラミング 

kagahiroのホームページ


[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. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (170 PV)
  2. Google News (グーグルニュース)日本版 (46 PV)
  3. グーグルニュース日本語版が見れない (10 PV)
  4. フリーソフトウェア/オープンソースのタブー (8 PV)
  5. 人気ユーチューバーの「ヒカル(ネクストステージ所属)」がVALUで自分のVAを全て売却し、詐欺ではないかと騒動に (8 PV)
  6. 「CASH(キャッシュ)」アイテム(ブランド品やガジェット)の写真を撮れば審査なしで現金化できるサービス (7 PV)
  7. [C言語]UTF-8でエンコードされた文字列の部分文字列を取り出すコード (7 PV)
  8. [将棋]将棋実況ユーチューバーのクロノさんが朝日新聞のクレームで棋譜中継を配信中止 (6 PV)
  9. ウェブページを1回だけリロード(再表示)する方法 (6 PV)
  10. VALU詐欺騒動でYouTuberヒカルが自身のVAを買い戻し、期限は18日20時まで (5 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2492 PV)
  2. Google News (グーグルニュース)日本版 (619 PV)
  3. [将棋]将棋実況ユーチューバーのクロノさんが朝日新聞のクレームで棋譜中継を配信中止 (206 PV)
  4. 「CASH(キャッシュ)」アイテム(ブランド品やガジェット)の写真を撮れば審査なしで現金化できるサービス (149 PV)
  5. グーグルニュース日本語版が見れない (129 PV)
  6. [C言語]UTF-8でエンコードされた文字列の部分文字列を取り出すコード (119 PV)
  7. [食べ物]七草粥(ななくさがゆ) (102 PV)
  8. ウェブページを1回だけリロード(再表示)する方法 (101 PV)
  9. フリーソフトウェア/オープンソースのタブー (95 PV)
  10. Sony、ハイエンドEマウントミラーレスカメラ「α9」(model ILCE-9)を発表 (95 PV)

アクセス統計

ディレクトリ

関連サイト