たっけんの気まぐれ撫子日記 このページをアンテナに追加 RSSフィード

2008年05月10日 土曜日入力された2進数の2の補数を表示するプログラム・改

見やすくするために整理。また、入力された値が2進数かどうか、10桁以内かどうか、すべて0ではないかを確認するようにした。また、11桁以上をうまく計算する方法は考え付いたが、面倒くさいので(笑)また度にすることにした。


※※※み木デザイナ:ここから※
※ 以下はデザインデータです。
※ コメントを削除しないようにしてください。
※ ---
※母艦とはフォーム##生成
母艦は「メインフォームのクライアントW=449#数値
のクライアントH=33#数値
のタイトル=「2の補数作成」#文字列
※ ---
エディタ1とはエディタ##生成
のX=0#数値
のY=0#数値
のW=128#数値
のH=32#数値
のテキスト=「」#文字列
のキー押した時は~エディタ1__キー押した時#イベント
※ ---
ボタン1とはボタン##生成
のX=192#数値
のY=0#数値
のW=64#数値
のH=32#数値
のテキスト=「計算開始」#文字列
のクリックした時は~ボタン1__クリックした時#イベント
※ ---
値1とはエディタ##生成
のX=256#数値
のY=0#数値
のW=64#数値
のH=32#数値
のテキスト=「0」#文字列
※ ---
値2とはエディタ##生成
のX=320#数値
のY=0#数値
のW=64#数値
のH=32#数値
のテキスト=「0」#文字列
※ ---
値3とはエディタ##生成
のX=384#数値
のY=0#数値
のW=64#数値
のH=32#数値
のテキスト=「0」#文字列
※ ---
ビット数とはエディタ##生成
のX=128#数値
のY=0#数値
のW=64#数値
のH=32#数値
のテキスト=「0」#文字列
※※※み木デザイナ:ここまで※

//各値について
//値1:文字数
//値2:右からの文字数
//値3:左からの文字数
//値0:左からの文字数(最下位ビットサーチ時の文字検索に使用)
//値00:エディタ1の数値文字列化したもの
//値000:スイッチ(繰り返しを終えるときに「0」になる)
//値0000:ビットを反転させる部分(文字列)
//確認値1:入力値確認に使用
//確認値2:同上

●ボタン1__クリックした時
  # ここにイベントを書きます。
  初期値化
  文字列化
  入力値確認
  最下位ビットサーチ
  ビット反転
  結果表示
  リセット  
  # 字下げした部分がイベント範囲です。

●エディタ1__キー押した時
  # ここにイベントを書きます。
  ビット数=ビット数+1
  # 字下げした部分がイベント範囲です。

●初期値化
 値0=0
 値00とは文字列
 それ
 値3=0
 値0000とは文字列
 それ
 確認値1とは文字列
 それ
 確認値2とは文字列
 それ文字列化
 エディタ1をビット数でゼロ埋めして値00に代入
 値1=ビット数

●入力値確認
 もしビット数が11以上ならば
  「計算可能な桁数は10桁までです」と言う
  終了
 確認値1をビット数でゼロ埋めして確認値1に代入
 値00の「1」を「0」に置換して確認値2に代入
 もし確認値1が確認値2ではないならば
  「2進数で入力してください」と言う
  終了
 もし確認値1=値00ならば
  「必ず1を入力してください」と言う
  終了

●最下位ビットサーチ
 値2=「1」
 値000=「1」
 値000が1以上
  値0=値1+1-値2
  値00で「{値0}」から「1」を文字検索
  もしそれが「0」ならば
   値2=値2+1
  違えば
   値000=0

●ビット反転
 値3=値1-値2
 値00から「{値3}」文字左部分を値0000に代入
 値00の1から「{値3}」文字削除
 「1」を「2」にビット置換
 「0」を「1」にビット置換
 「2」を「0」にビット置換
 値00=「{値0000}{値00}」

●結果表示
 値00を言う
 
●リセット
 エディタ1=「」
 ビット数=「0」

●ビット置換(AをBに)
 値0000の「{A}」を「{B}」に置換して値0000に代入

トラックバック - http://nadesiko.g.hatena.ne.jp/takken123/20080510