[2進数]の検索結果
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)
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
PHPの場合は、ズバリ10進数を2進文字列に変換できるdecbin関数があるので、decbin関数を使用すればいいのですが、 もちろん、Perlの場合と同様にビット演算で2進文字列に変換することもできます。以下は、そのサンプルコードです。
このスクリプトをコマンドラインで実行すると次のように表示されます。
C:\xampp\htdocs\sample>\xampp\php\php binstr.php
01000001 (1)
01000001 (2)
PHPハンドブック (ハンドブックシリーズ)
ソフトバンククリエイティブ 著者:柏岡 秀男
amazon.co.jpのカスタマーレビューを見る
powered by amalink
1
アクセスランキング
今日のアクセスランキング TOP 10
- Google News (グーグルニュース)日本版 (6 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (3 PV)
- MT4向けブレイクアウトEA「NEKONEKO(ネコネコ) FREE」(0.01ロット固定、無料、使用期限無し) (3 PV)
- [PR]noteで販売しているEAの使用期限を無期限にして価格を改定します。 (3 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (3 PV)
- MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (3 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (2 PV)
- USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (2 PV)
- [PR]スキャルピングならスプレッドが狭くキャッシュバックサイトも利用できるExnessがおすすめ (1 PV)
- [FX]乱数によってランダムにポジションを建てるMT4向け無料EA「2bunno1」をバージョンアップ(Ver 2.00) #コイントストレード (1 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (332 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (112 PV)
- 究極の爆益ゴールドナンピンマーチンEA「Extreme(エクストリーム)」 MT4向け (103 PV)
- Google News (グーグルニュース)日本版 (96 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (77 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (72 PV)
- USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (70 PV)
- 究極の爆益ゴールドナンピンマーチンEA「Extreme MT5」 (70 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (63 PV)
- ドル円(USDJPY)で爆益を狙うハイリスクハイリターンのMT4向けナンピンマーチンEA「Hyper Dollar」 (57 PV)
アクセス統計
ディレクトリ
関連サイト