[rank:a]の検索結果


[614] Posted by kagahiro at 2006/06/08 12:13:05
2 point | Link (1) | Trackback (2) | Comment (0)

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)

公正取引委員会が、通話料金及びメール料金について、景品表示法第4条第1項第2号(有利誤認)の規定に違反するするおそれがあるとしてソフトバンクモバイルに警告を、料金の割引等について、景品表示法第4条第1項第2号の規定の違反につながるおそれがあるとして、KDDI及びNTTドコモの両社に対し注意を行った。

また、社団法人電気通信事業者協会に対し、携帯電話役務の取引における表示の適正化の観点から、より分かりやすい情報の提供と適正な表示を行うよう、会員事業者を指導することを要望した。

携帯電話事業者3社に対する警告等について(pdf)
[941] Posted by kagahiro at 2006/12/12 22:15:56
1 point | Link (1) | Trackback (1) | Comment (0)

Google ドライブ(Google Drive 日本版)は、15GBまで無料で利用できるGoogleのオンラインストレージGoogle Drive」の日本語版で、有料の場合は最大16TB($799.99)まで利用することができる。パソコンにGoogle ド...
[2304] Posted by kagahiro at 2013/06/03 11:41:06
0 point | Link (1) | Trackback (0) | Comment (0)

Google News(グーグルニュース)のデザインが更新され使いやすくなった。I(ユーザーインターフェース)がカード式となり、スッキリとして以前より見やすくなっている。また、「セクションの管理」で、検索キーワー...
[2804] Posted by kagahiro at 2017/07/04 17:54:53
0 point | Link (4) | 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)

突然中日新聞が「アベする」を流行語大賞に推薦したことで、話題が盛り返した感のある「アサヒる」を「goo ブログ評判分析」で分析してみました。アサヒるのブログ評判分析10月7日?10月13日いつわる 捏造する 沖...
[1106] Posted by kagahiro at 2007/11/03 21:05:35
0 point | Link (2) | Trackback (0) | Comment (0)

USTREAM(ユーストリーム)」は、ビデオカメラとインターネット接続さえあれば全世界の視聴者へ向けて放送することができる対話的なライブビデオサービス。ユーストリーム×ツィッター 10倍広がる活用法日本経済新...
[1572] Posted by kagahiro at 2009/07/04 16:23:16
0 point | Link (1) | Trackback (0) | Comment (0)

W-ZERO3(ダブリューゼロスリー)とは、2005年12月14日に発売された「PCの性能」と「ケータイの機動性」を融合したシャープ製のモバイルコミュニケーション端末で、現在(2006年8月)ではハイスペックバージョンのWS...
[811] Posted by kagahiro at 2006/08/07 22:59:43
0 point | Link (3) | Trackback (0) | Comment (0)

Deep Learning (日本語翻訳版)「ディープラーニングに関する書籍の決定版」と言われているGoodfellow他著「Deep Learning」の日本語翻訳版をオンライン公開しているページ。製本版は今後発売される予定となっている...
[2834] Posted by kagahiro at 2017/09/06 17:39:27
0 point | Link (3) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  35 36 37 38 39  次へ >


アクセスランキング

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

  1. 海外掲示板を読むために気になったスラング系英単語まとめ | Kousyoublog (5 PV)
  2. StartPage(スタートページ) - 匿名検索エンジン (2 PV)
  3. ガンマトレード(ガンマプレイ)とは #FX #用語解説 #オプション取引 (2 PV)
  4. 有名個人投資家「cis(シス)」さんが、データ改ざん発覚で株価が急落した東レ株を大量に買ったもよう (1 PV)
  5. 完全無料のMT5用ナンピンEA「Nanpin K(ナンピンケイ) MT5」 使用制限無し (1 PV)
  6. 自作のMT5向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)の一覧 #MT5 #FX (1 PV)
  7. グーグルニュース(Google News)日本版が表示できるURL (1 PV)
  8. 有名まとめサイトの管理人「JIN」さんが株、FXで約-8000万の大損失 #もうダメだ、終わった (1 PV)
  9. NHK、ニュースのRSS配信を開始 (1 PV)
  10. 有力将棋系ユーチューバーのショウヤンさんが将棋ウォーズで「ソフト指し」を告白し衝撃走る (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (201 PV)
  2. 海外掲示板を読むために気になったスラング系英単語まとめ | Kousyoublog (45 PV)
  3. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (45 PV)
  4. 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (41 PV)
  5. 2NN 2ちゃんねるニュース速報+ナビ (39 PV)
  6. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (24 PV)
  7. FC2まとめ (23 PV)
  8. YouTube(ユーチューブ)日本版 - 動画共有、ライブ配信 (23 PV)
  9. StartPage(スタートページ) - 匿名検索エンジン (23 PV)
  10. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (19 PV)

アクセス統計

ディレクトリ

関連サイト