VERSION 5.00 Begin VB.Form Form1 Caption = "Form1" ClientHeight = 3228 ClientLeft = 60 ClientTop = 348 ClientWidth = 7572 LinkTopic = "Form1" ScaleHeight = 3228 ScaleWidth = 7572 StartUpPosition = 3 'Windows の既定値 Begin VB.CommandButton Command1 Caption = "→" Height = 495 Left = 1200 TabIndex = 5 Top = 1200 Width = 852 End Begin VB.TextBox Text1 Height = 375 Left = 120 TabIndex = 1 Top = 720 Width = 2055 End Begin VB.Label lblBit BorderStyle = 1 '実線 Caption = "Label5" Height = 612 Left = 1320 TabIndex = 9 Top = 2520 Width = 5772 End Begin VB.Label lblpower Caption = "0" Height = 255 Left = 5520 TabIndex = 8 Top = 600 Width = 255 End Begin VB.Label Label4 Caption = "×" Height = 255 Left = 4800 TabIndex = 7 Top = 840 Width = 255 End Begin VB.Label Label3 Caption = "2" Height = 255 Left = 5160 TabIndex = 6 Top = 840 Width = 255 End Begin VB.Label lblkasuu Caption = "0." Height = 375 Left = 3000 TabIndex = 4 Top = 840 Width = 1695 End Begin VB.Label lblhugou Caption = "-" Height = 255 Left = 2640 TabIndex = 3 Top = 840 Width = 255 End Begin VB.Label Label2 Caption = "=" Height = 255 Left = 2280 TabIndex = 2 Top = 840 Width = 255 End Begin VB.Label Label1 Caption = "正規化" Height = 255 Left = 240 TabIndex = 0 Top = 240 Width = 735 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Function DspBitImg(f, k, s) As String 'f 符号 文字列 +, - 'k 仮数 10 進数で,0.5 から 1 までの数 's 指数 整数 Dim st As String Dim kary(7) As Integer st = "" '符号のビットイメージ If f = "-" Then st = "1" Else st = "0" End If '指数部のビットイメージを作成 作成まだ st = st + " " + "1111111" 'k = -1 のとき 例 '仮数部のビットイメージ kasuu = "" For i = 8 To 32 k = k * 2 If k >= 1 Then kasuu = kasuu + "1" k = k - 1 Else kasuu = kasuu + "0" End If Next st = st + " " + kasuu lblkasuu.Caption = "0." + kasuu DspBitImg = st End Function Private Sub Command1_Click() Dim v As Double Dim sift As Integer v = Val(Text1.Text) '入力された数字を数値に変換 If v >= 0 Then lblhugou.Caption = "+" Else lblhugou.Caption = "-" v = -v 'マイナスのときは,いったんプレスにして考えるため End If sift = 0 ' 2倍した回数を記憶 Do While v < 0.5 v = v * 2 sift = sift - 1 Loop Do While v >= 1 v = v / 2 sift = sift + 1 Loop lblpower.Caption = sift f = lblhugou.Caption s = sift k = v lblBit = DspBitImg(f, k, s) End Sub