プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

[HSP]5桁ビット/秒文字列のサンプル

2018年08月13日 20時58分03秒 | HSP講座

スクリプト言語の HSP については、公式ホームページの「HSPTV!」をどうぞ。


このページは「単位文字列について」シリーズの1つです。
ここには、HSPで5桁のビット/秒文字列を作成するサンプルを紹介します。(戻る)

小技集のサンプル

管理上このサンプルは sample236(5桁ビット/秒の文字列を作成).hsp のソースです。

//------------------------------------------------------------------------------
// 5桁ビット/秒の文字列を作成 by 科学太郎
//==============================================================================
// 新規作成日:2018-08-09 (木) 12:50:00
// 最終更新日:2018-08-09 (木) 12:58:00
//------------------------------------------------------------------------------

//--------------------------------------
// 記号定数
//--------------------------------------
#define MSG_SPACE       " "

//--------------------------------------
// メイン部
//--------------------------------------
*Init
    ;ビット/秒
    sdim BitUnits,9
    BitUnits(0)=" bps","Kbps","Mbps","Gbps","Tbps","Pbps","Ebps","Zbps","Ybps"
*Main
    screen 0,640,480,SCREEN_NORMAL|SCREEN_FIXEDSIZE
    syscolor 15:boxf:color:title "5桁ビット/秒の文字列を作成 by 科学太郎"
    ;固定5桁
    s=""
    a=1.0
    repeat 90
        s+=MakeBitUnit5A(a)+"\n"
        a*=2.0
    loop
    ;可変5桁
    t=""
    a=1.0
    repeat 90
        t+=MakeBitUnit5B(a)+"\n"
        a*=2.0
    loop
    ;文字
    font MSGOTHIC,14
    x=ginfo_winX/2
    y=ginfo_winY-20
    color $00,$00,$00:boxf
    color $FF,$FF,$00:pos 0,3:mes "《固定5桁のビット/秒》"
    color $FF,$FF,$00:pos x,3:mes "《可変5桁のビット/秒》"
    ;結果
    font MSGOTHIC,12:objmode 2
    pos 0,20:mesbox s,x,y,5,0
    pos x,20:mesbox t,x,y,5,0
    stop
//--------------------------------------
// 5桁ビット/秒の文字列を作成
//--------------------------------------
#defcfunc MakeBitUnit5A double _size_,\
    local nPos,\
    local dbSize
    
    dbSize=(_size_)
    if(dbSize<1000.0){
        return strf("%5.f",dbSize)+MSG_SPACE+BitUnits(nPos)
    }
    while(dbSize>=1000.0)
        dbSize/=1000.0:nPos++
    wend
    return strf("%5.1f",dbSize)+MSG_SPACE+BitUnits(nPos)
//--------------------------------------
// 5桁ビット/秒の文字列を作成
//--------------------------------------
#defcfunc MakeBitUnit5B double _size_,\
    local nPos,\
    local dbSize,\
    local szSize
    
    dbSize=(_size_)
    if(dbSize<1000.0){
        return strf("%5.f",dbSize)+MSG_SPACE+BitUnits(nPos)
    }
    while(dbSize>=1000.0)
        dbSize/=1000.0:nPos++
    wend
    ;補正
    szSize=strf("%f",dbSize)    :poke szSize,5
    if(peek(szSize,4)=='.')     :poke szSize,4
    return strf("%5s",szSize)+MSG_SPACE+BitUnits(nPos)
//------------------------------------------------------------------------------
// End of sample236(5桁ビット/秒の文字列を作成).hsp
//------------------------------------------------------------------------------

スクリーン・ショット

実行結果

固定5桁 可変5桁
    1  bps
    2  bps
    4  bps
    8  bps
   16  bps
   32  bps
   64  bps
  128  bps
  256  bps
  512  bps
  1.0 Kbps
  2.0 Kbps
  4.1 Kbps
  8.2 Kbps
 16.4 Kbps
 32.8 Kbps
 65.5 Kbps
131.1 Kbps
262.1 Kbps
524.3 Kbps
  1.0 Mbps
  2.1 Mbps
  4.2 Mbps
  8.4 Mbps
 16.8 Mbps
 33.6 Mbps
 67.1 Mbps
134.2 Mbps
268.4 Mbps
536.9 Mbps
  1.1 Gbps
  2.1 Gbps
  4.3 Gbps
  8.6 Gbps
 17.2 Gbps
 34.4 Gbps
 68.7 Gbps
137.4 Gbps
274.9 Gbps
549.8 Gbps
  1.1 Tbps
  2.2 Tbps
  4.4 Tbps
  8.8 Tbps
 17.6 Tbps
 35.2 Tbps
 70.4 Tbps
140.7 Tbps
281.5 Tbps
562.9 Tbps
  1.1 Pbps
  2.3 Pbps
  4.5 Pbps
  9.0 Pbps
 18.0 Pbps
 36.0 Pbps
 72.1 Pbps
144.1 Pbps
288.2 Pbps
576.5 Pbps
  1.2 Ebps
  2.3 Ebps
  4.6 Ebps
  9.2 Ebps
 18.4 Ebps
 36.9 Ebps
 73.8 Ebps
147.6 Ebps
295.1 Ebps
590.3 Ebps
  1.2 Zbps
  2.4 Zbps
  4.7 Zbps
  9.4 Zbps
 18.9 Zbps
 37.8 Zbps
 75.6 Zbps
151.1 Zbps
302.2 Zbps
604.5 Zbps
  1.2 Ybps
  2.4 Ybps
  4.8 Ybps
  9.7 Ybps
 19.3 Ybps
 38.7 Ybps
 77.4 Ybps
154.7 Ybps
309.5 Ybps
619.0 Ybps
    1  bps
    2  bps
    4  bps
    8  bps
   16  bps
   32  bps
   64  bps
  128  bps
  256  bps
  512  bps
1.024 Kbps
2.048 Kbps
4.096 Kbps
8.192 Kbps
16.38 Kbps
32.76 Kbps
65.53 Kbps
131.0 Kbps
262.1 Kbps
524.2 Kbps
1.048 Mbps
2.097 Mbps
4.194 Mbps
8.388 Mbps
16.77 Mbps
33.55 Mbps
67.10 Mbps
134.2 Mbps
268.4 Mbps
536.8 Mbps
1.073 Gbps
2.147 Gbps
4.294 Gbps
8.589 Gbps
17.17 Gbps
34.35 Gbps
68.71 Gbps
137.4 Gbps
274.8 Gbps
549.7 Gbps
1.099 Tbps
2.199 Tbps
4.398 Tbps
8.796 Tbps
17.59 Tbps
35.18 Tbps
70.36 Tbps
140.7 Tbps
281.4 Tbps
562.9 Tbps
1.125 Pbps
2.251 Pbps
4.503 Pbps
9.007 Pbps
18.01 Pbps
36.02 Pbps
72.05 Pbps
144.1 Pbps
288.2 Pbps
576.4 Pbps
1.152 Ebps
2.305 Ebps
4.611 Ebps
9.223 Ebps
18.44 Ebps
36.89 Ebps
73.78 Ebps
147.5 Ebps
295.1 Ebps
590.2 Ebps
1.180 Zbps
2.361 Zbps
4.722 Zbps
9.444 Zbps
18.88 Zbps
37.77 Zbps
75.55 Zbps
151.1 Zbps
302.2 Zbps
604.4 Zbps
1.208 Ybps
2.417 Ybps
4.835 Ybps
9.671 Ybps
19.34 Ybps
38.68 Ybps
77.37 Ybps
154.7 Ybps
309.4 Ybps
618.9 Ybps
  • 固定5桁のビット/秒文字列は、小数点位置が固定してるため有効桁数が変化します。
  • 可変5桁のビット/秒文字列は、小数点位置が可変するため有効桁数は常に4桁を表示します。
  • ネット・モニターのソフトなどでは、可変5桁のビット/秒文字列を使います。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« [HSP]5桁バイト/秒文字列... | トップ | [HSP]5桁Mバイト/秒文字... »
最新の画像もっと見る

コメントを投稿

HSP講座」カテゴリの最新記事