[rank:a]の検索結果


Perlの関数を使用して、以下の手順で10進数を2進文字列に変換することができます。

  1. sprintf関数で10進数を16進文字列に変換
  2. pack関数で16進文字列をバイナリーにパック
  3. unpack関数で2進文字列に変換

例えば、文字列の先頭文字のASCIIコード値(10進数)を取得し、それを2進文字列に変換に変換する場合は、 次のようなコードになります。

#!/usr/bin/perl

use strict;
use warnings;

my $ascii = "ABC";
my $asciicode = ord $ascii;  # 先頭文字のASCIIコード値を取得
my $str = _bitstr($asciicode, 8);
print "str   = $str\n"; # for debug

exit;

# 10進数を2進文字列に変換する関数
sub _bitstr {
    my ($code, $len) = @_;
    my $hexcode = sprintf("%X", $code); # 16進に変換
    my $bitstr = unpack("B".$len, pack("H2", $hexcode));
}

10進数を単に2進文字列に変換するだけならこれでも構わないのですが、ビット演算子を使ってビットのオン・オフを判定して、 2進文字列を作成していく方法もあります。以下のコードはその実装例です。

#!/usr/bin/perl

use strict;
use warnings;

my $ascii = "ABC";
my $asciicode = ord $ascii;  # 先頭文字のASCIIコード値を取得
my $str = _bitstrR($asciicode, 8);
print "str   = $str\n"; # for debug

exit;

# ビット演算で10進数を2進文字列に変換する関数
sub _bitstrR {
    my ($code, $len) = @_;
    my $bitstr = '';
    for my $i (1 .. $len) {
        $bitstr .= (0x80 & $code) ? '1' : '0'; # 0x80(2進数:10000000)でビット論理積をとる
        $code <<= 1;
    }
    return $bitstr;
}

ここで問題になるのはどちらの方法が処理速度が優れているかということですが、以下のコードのプロファイルを取ると・・・

#!/usr/bin/perl

use strict;
use warnings;

my $ascii = "ABC";
my $asciicode = ord $ascii;  # 先頭文字のASCIIコード値を取得

my $str = '';
for my $j (1 .. 10000) {
    $str = _bitstr($asciicode, 8);
    $str = _bitstrR($asciicode, 8);
}
print "str   = $str\n"; # for debug

exit;

sub _bitstr {
    my ($code, $len) = @_;
    my $hexcode = sprintf("%X", $code); # 16進に変換
    my $bitstr = unpack("B".$len, pack("H2", $hexcode));
}

sub _bitstrR {
    my ($code, $len) = @_;
    my $bitstr = '';
    for my $i (1 .. $len) {
        $bitstr .= (0x80 & $code) ? '1' : '0'; # 0x80(2進数:10000000)でビット論理積をとる
        $code <<= 1;
    }
    return $bitstr;
}


C:\xampp\htdocs\sample>perl -d:Dprof bitstr3.pl
str   = 01000001

C:\xampp\htdocs\sample>dprofpp
Total Elapsed Time = 0.018988 Seconds
  User+System Time = 0.016988 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 223.   0.038  0.038  10000   0.0000 0.0000  main::_bitstr
 47.0   0.008  0.008  10000   0.0000 0.0000  main::_bitstrR
 0.00       - -0.000      1        -      -  strict::import
 0.00       - -0.000      1        -      -  warnings::import
 0.00       - -0.000      1        -      -  strict::bits
 0.00       - -0.000      2        -      -  main::BEGIN

やはり、ビット演算で2進文字列を作成するほうが早いようです。

プログラミングPerl〈VOLUME1〉
オライリー・ジャパン 著者:ラリー ウォール,ジョン オーワント,トム クリスチャンセン


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

[2239] Posted by kagahiro at 2012/12/09 20:36:29
0 point | Link (4) | Trackback (0) | Comment (0)


MongoDB は、スケーラブルで高性能なオープンソースのドキュメント指向型データベース。

MongoDB (from "humongous") is a scalable, high-performance, open source, schema-free, document-oriented database.

MongoDB のダウンロード
[1869] Posted by kagahiro at 2010/05/12 15:51:08
0 point | Link (1) | Trackback (0) | Comment (0)

プロジェクト管理(プロジェクトマネジメント)とは、明確な目的を決められた期間と予算で、限られた人材と機材を使用して達成すること。

プロジェクト管理に関する書籍

実践! プロジェクト管理入門−プロジェクトを成功に導く52の鉄則
PMBOK、CMM、PDCAサイクル等のプロジェクト管理の手法や、MS Projectの適用範囲と使い方などを掲載。

オープンソースプロジェクトの管理と運営
オープンソースプロジェクトを成功させるための実践的な指針をビジネスへの応用を念頭に置きながら、技術者以外にも分かる平易な言葉で具体的に解説。
[276] Posted by kagahiro at 2005/04/19 05:25:35
0 point | Link (3) | Trackback (0) | Comment (0)

Postedbyという投稿サイト(マイクロブログ)を作成しました。現時点の仕様は、少し前にソースコードを公開した「メモる」とは記事の本文にHTMLタグが使えるかどうかの違い程度です(デザインもちょっと違います)が...
[1920] Posted by kagahiro at 2010/06/14 17:29:06
0 point | Link (2) | Trackback (0) | Comment (0)

NEKONEKO 2(Ver 2.05)用のセットファイルをいくつかダウンロードできるようにしました。デフォルト設定はゴゴジャンのフォワードがありますが、そのほかはバックテストのみですので、使用する場合はまずデモ口座での...
[3165] Posted by kagahiro at 2021/05/12 11:32:05
1 point | Link (0) | Trackback (0) | Comment (1)

レンタルサーバーサービスを提供している「さくらインターネット」が、大量の計算資源を高いコストパフォーマンスで利用できる「高火力コンピューティング」の1つである「さくらの専用サーバ 高火力シリーズ」を時間...
[2670] Posted by kagahiro at 2017/04/17 17:15:14
0 point | Link (3) | Trackback (0) | Comment (0)

さくらインターネットが、低価格VPS「さくらのVPS」に新たに「SSDプラン」を追加し、2012年12月13日から提供を開始した。今回提供が開始された「SSDプラン」は、メモリ1GB・ディスク50GBが月額1,780円で利用できる「...
[2245] Posted by kagahiro at 2012/12/13 15:37:04
0 point | Link (4) | Trackback (0) | Comment (0)

Apache(アパッチ)とは、世界一のシェアを誇るオープンソースWebサーバ用ソフトウェア。NCSAにソフトウェアパッチ(間違い部分を修正するファイル)を提供していた人達によって、NCSAをベースとした別のウェブサー...
[198] Posted by kagahiro at 2005/04/01 23:43:26
0 point | Link (4) | Trackback (0) | Comment (0)

ブレイクアウトの場合は、トレンドに順張り、トレンドにも順張りでエントリーしますが、逆張りでエントリーするなら、トレンドには順張り、1日程度の短期的な値動きに逆張りするのが良いでしょう。いわゆる押し目買い...
[3282] Posted by kagahiro at 2024/03/11 12:44:27
0 point | Link (2) | Trackback (0) | Comment (0)

Linaroは、ARM、IBM、Samsung、米Freescale Semiconductor、スイスST-Ericsson、米Texas Instrumentsの6社が立ち上げた非営利団体。ARMベースのシステムオンチップ(SoC)を利用するLinux開発者にツールやリソースを...
[1900] Posted by kagahiro at 2010/06/04 16:15:26
0 point | Link (2) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  7 8 9 10 11  次へ >


アクセスランキング

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

  1. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (8 PV)
  2. GNU Debugger (GDB) (5 PV)
  3. 2%のインフレターゲットとは (5 PV)
  4. 2NN 2ちゃんねるニュース速報+ナビ (5 PV)
  5. ドル円(USDJPY)で爆益を狙うハイリスクハイリターンのMT4向けナンピンマーチンEA「Hyper Dollar」 (4 PV)
  6. [PR]noteで販売している自作EAの一覧 (4 PV)
  7. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (4 PV)
  8. MT4向け1ポジアノマリーEA「DAY TRADING」 オープンソースライセンス(GPL3) #ドル円 (4 PV)
  9. 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (4 PV)
  10. NEKONEKO FREEの配布は終了しました (4 PV)

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

  1. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (73 PV)
  2. 2%のインフレターゲットとは (42 PV)
  3. 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (38 PV)
  4. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (38 PV)
  5. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (36 PV)
  6. [PR]noteで販売している自作EAの一覧 (35 PV)
  7. MT4向け1ポジアノマリーEA「DAY TRADING」 オープンソースライセンス(GPL3) #ドル円 (33 PV)
  8. NEKONEKO FREEの配布は終了しました (33 PV)
  9. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (33 PV)
  10. ドル円(USDJPY)で爆益を狙うハイリスクハイリターンのMT4向けナンピンマーチンEA「Hyper Dollar」 (31 PV)

アクセス統計

ディレクトリ

関連サイト