プロフィール


管理人 : はんせいするクマ

 
カレンダー
<< 07 | 2017/08 | 09 >>
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
 
最近のコメント

  • はんせいしない仔丑 さん
    2017/08/19 (Sat) 22:02
  • 名無しのクマー さん
    2017/08/13 (Sun) 13:19
  • はんせいしない仔丑 さん
    2017/08/12 (Sat) 18:11
  • 名無しのクマー さん
    2017/08/06 (Sun) 19:02
  • はんせいしない仔丑 さん
    2017/08/05 (Sat) 15:18
  • 名無しのクマー さん
    2017/07/30 (Sun) 10:18
  • はんせいしない仔丑 さん
    2017/07/29 (Sat) 15:39
  • 名無しのクマー さん
    2017/07/22 (Sat) 19:42
  • はんせいしない仔丑 さん
    2017/07/22 (Sat) 12:24
  • 名無しのクマー さん
    2017/07/15 (Sat) 20:37

 
月別アーカイブ
      08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月   08月   07月   06月   05月   04月   03月   02月   01月   12月   11月   10月   09月
 
・・・ (´・ω・`)

なんだか切ない、そんな日々です。

2011/11/27 (Sun) 19:37

書く事も無いのでプログラムの話

最近、個人ではActionScriptを触ってます。
世の中には「Flashは死んだ」と言う人も居るようなのですが、
一応まだまだ現役のようですし、OSやブラウザを気にせず開発できることと
何より、貧乏人にとっては開発ツールが無料(FlexSDKとFlashDevelop)
で揃うのがありがたかったんです。

で、数値から左詰の文字列を作成する便利な方法が無いのかとちょっと検索、
ネット上にもわりとサンプルが溢れていたのですが、
どれもこれも、ループで「0」を1個ずつ左に足しているものばかりでした。

うーん、実際に計ったわけではないですが
ループは内部でメモリ確保を繰り返しそうで遅いんじゃない?
もちろん、スクリプトエンジン次第だと思うのですが・・・

というわけで、下のような感じで自作してみました。

public class Cmn
{
static private const _ZERO_STR_8:String = "00000000";
static private const _ZERO_STR_16:String
= Cmn._ZERO_STR_8 + Cmn._ZERO_STR_8;
static private const _ZERO_STR_32:String
= Cmn._ZERO_STR_16 + Cmn._ZERO_STR_16;
static private const _ZERO_STR_64:String
= Cmn._ZERO_STR_32 + Cmn._ZERO_STR_32;
static private const _ZERO_STR_128:String
= Cmn._ZERO_STR_64 + Cmn._ZERO_STR_64;

static public function Uint2RadixStr(
num:uint
, radix:uint = 10
, len:uint = 0
):String {
return (Cmn._ZERO_STR_128 + num.toString(radix)).substr(-len);
}

static public function Uint2HexStr32(num:uint):String {
return "0x" + Cmn.Uint2RadixStr(num, 16, 8); }
....


まー、ループに比べたら桁数の制限はあるのですが、
こんなんで十分だと思うんですけどね。
後は標準でプリプロセッサさえ実装されてくれれば、
言うこと無いんだけどな~。

それにしても、また暖かくなりました。
非常にありがたいことに、いつまで経っても本格的な冬が始まらない。


プログラムコメント(2)トラックバック(0)
目標の2桁まであと1回 «  ホーム  » 健康診断

コメント


暖冬キライです

|_ノ     、__!_ヽ: : : \
| ̄ ̄月曜日 ̄ ̄ ̄| : : : : :!
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|: : : : : |
|二     二二__ |: : : : : |
|丿       弋  ノ 厂|: : : : :/
|        `¨¨´ ノ : : /  やあ
| 、        ,  ∠ -‐'イ|
|‐、 ̄ ̄ ̄ ̄/     /: :|:|
|_ ⊥ 、  /    / : : |:|
|-─-..,,〉__,, -< |: : : ; !:l
|     `〉 //   /: : :/ l :!
| ̄ ̄`V /   / : : / l: :!

今一つ意図が分からなかったりもするのですが、
Cmnクラスそのものが、メモリを確保するのは良いのでしたっけ?
”0x”をprefixした固定長文字列を作りたいということ???

この言語全く知らないのですが、string::append系のものが用意されて
いるのでは? substrを使うと結局内部でloopが回ってる気がするの
ですけど。

>それにしても、また暖かくなりました。
>非常にありがたいことに、いつまで経っても本格的な冬が始まらない。
日本株は、いつまで経っても本格的な春が始まらないんですけど・・・

年末まで後1ヶ月。イイハナシマダー
2011/11/27 21:25 |  はんせいしない仔雀 | 8W5W68z2 | URL |  編集 |  返信

> 今一つ意図が分からなかったりもするのですが、
> Cmnクラスそのものが、メモリを確保するのは良いのでしたっけ?
オブジェクト指向言語ゆえ、クラスを使用する必要があるというだけで、
関数自体はstaticで宣言しているので、起動時(ActionScriptだと
たぶんクラス読み込み時)に、一度だけ定義されるだけだと思われます。

> ”0x”をprefixした固定長文字列を作りたいということ???
num.toString(radix)のradixが16だと16進文字列を返します。
Uint2HexStr32関数はUint2RadixStr関数のラッパーですね。
Cだとマクロにしたいところなんですが、プリプロセッサが無いので・・・

> この言語全く知らないのですが、string::append系のものが用意されているのでは?
あるような気もしますが「+」でも速度は変わらないような気がします。

> substrを使うと結局内部でloopが回ってる気がするのですけど。
勘違い?
substrは指定された桁からの部分文字列の取得なので、
とくにループは使用してないかと思います。
ちなみに引数がマイナスの場合は文字列の右から取得なんです。(あら便利~)

まあ、ループの中で文字列の連結をしてると、処理系にもよるんでしょうが
ループの度にメモリ確保が走って遅くなる可能性があるかな~というのが嫌なんですよね。
最初に1回だけがっつりメモリをとって、指定した桁から必要なサイズ分だけ取得する。
ここでやってるくらいの桁数なら違いは無いのかもしれませんが、
好みの問題なんです (><


> 暖冬キライです
おや、スキー派ですか、それともスノボー派ですか?
私はコタツ派です (><

> 日本株は、いつまで経っても本格的な春が始まらないんですけど・・・
ひょっとして、はんせいしないさん日本株持ってませんか?

> 年末まで後1ヶ月。イイハナシマダー
橋下さんが市長になりましたよ~
改革できるかは知りませんがw

ノシ
2011/11/28 19:48 |  はんせいするクマ | bqsLJ3f. | URL |  編集 |  返信

コメントの投稿



管理者にだけ表示を許可する


 BLOG TOP 
カウンター

ビューカウンター

訪問者カウンター


 
検索
ブログ内検索

Google
 
たぶん広告です