No.5ベストアンサー
- 回答日時:
私も考えてみました。
(マイナスについては考慮していません。)あまりテストしてないので間違えてたらすみません。
'10進→2進
Function FromDecimalToBinary(X As Long) As String
Dim Y As String
If (X < 0) Then
Y = "Error"
Else
Do
Y = X Mod 2 & Y
X = X \ 2
Loop While (X > 0)
End If
FromDecimalToBinary = Y
End Function
'2進→10進
Function FromBinaryToDecimal(X As String) As Long
Dim i As Integer
Dim Y As Long
'2進チェック
If (Replace(Replace(X, "0", ""), "1", "") <> "") Then
Y = -1
Else
For i = 0 To Len(X) - 1
Y = Y + Mid(X, Len(X) - i, 1) * 2 ^ i
Next i
End If
FromBinaryToDecimal = Y
End Function
Private Sub Command1_Click()
'10進→2進
Label1 = FromDecimalToBinary(Text1)
End Sub
Private Sub Command2_Click()
'2進→10進
Label1 = FromBinaryToDecimal(Text1)
End Sub
No.4
- 回答日時:
10進から2進ならなんとか
intTestが10進で、intBit(1 to 16)が2進です
If intTest And &H1 Then
intBit(1) = 1
Else
intBit(1) = 0
End If
If intTest And &H2 Then
intBit(2) = 1
Else
intBit(2) = 0
End If
:
以下同様に&H4から&H8000まで
No.3
- 回答日時:
No.2を回答した者ですが、
タイトルだけを拝見してカテゴリを算数の分野と思い込んで夢中で回答してしまいました。
したがってNo.2はVBカテでの回答ではございません。
大変失礼いたしました。
No.2
- 回答日時:
a進数のn桁目の数字がp(0≦p≦a-1)であるということは、
aの(n-1)乗がpあるという意味です。
ものすごくわかりにくい説明なので、例を使って具体的に説明します。
2進数の数「10011」を10進数であらわすとき、
2進数の「10011」というのは
2の4乗×1 (=16×1 =16
2の3乗×0 (=8×0 =0
2の2乗×0 (=4×0 =0
2の1乗×1 (=2×1 =2
2の0乗×1 (=1×1 =1
という意味ですから、
これを10進数であらわすと
(16+2+1=)19になります。
また、10進数の「58」を2進数であらわしてみると
58=32+16+8+2
=(2の5乗×1)+(2の4乗×1)+(2の3乗×1)+(2の1乗×1)
ですから、2進数であらわすと111010です。
ここまでくれば当たり前ですが、10進数の数字もおなじ意味です。
26053=20000+6000+50+3
=10000×2 + 1000×6 + 10×5 + 1×3
=(10の4乗×2)+(10の3乗×6)+(10の1乗×5)+(10の0乗×3)
自分でも説明が下手だと思いますが、わかっていただけたでしょうか。
No.1
- 回答日時:
'A を2進数 Bを10進数とすると
' テキストボックス名を Text1とする
’ラベルをLabel1とする
'Text1に2進数を代入した時のサブルーチンに
-----------------------
Dim A As String
Dim B As Integer
A = Text1.Text
B=0
'K = 2の乗数とする
K = 0
'LAはテキストA の長さ
LA = Len(A)
'Aの文字列を右側から0か1かを調べる
For I = LA To 1 Step -1
'1の場合
If Mid(A, I, 1) = "1" Then
'Bの値を増やす
B = B + 2 ^ K
End If
K = K + 1
Next I
'Label1に10真数を代入
Label1.Caption = B
---------------------------
考え方でいうとこんなところですか。
プログラムとしてはこのままでは善くないです。
TEXT1の値に01だけの集合であるかの判断が
必要です。
この場合 例えば
Aに 11 を代入すると
B = 2~0 + 0~1 = 3 となります
8進数や16進数は関数があります。
-------------------------
10進数から2進数への変換も必要なら
書きますが...いかがですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
Accessコンボボックスにレコー...
-
stdpicture型の変数に、、
-
Variant型で宣言してるのにEmpt...
-
整数xxxが大き過ぎますというエ...
-
テキストボックスの値を変数に...
-
int→unsigned int キャスト
-
複数の演算子を選択する場合の処理
-
C言語 列挙型(enum型)変数について
-
DataTableの値を変数に代入したい
-
[VBS]変数を定数に変換する方法...
-
変数にオフセットが付いている...
-
レジストリの値獲得について
-
構造体からレコードセットへの代入
-
C言語 アロー演算子について質...
-
EXCEL/VBA 変数の値をクリップ...
-
VBA 1行で複数の代入を行った...
-
jsp~jspにhiddenを使って変数...
-
processing エラーで、 "cannot...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
EXCEL/VBA 変数の値をクリップ...
-
エラーの意味は? Lvalue req...
-
jsp~jspにhiddenを使って変数...
-
Variant型で宣言してるのにEmpt...
-
[VBS]変数を定数に変換する方法...
-
テキストボックスの値を変数に...
-
processing エラーで、 "cannot...
-
整数xxxが大き過ぎますというエ...
-
【VBA】複合代入演算子
-
JavaScriptをURLから直接実行し...
-
VB6.0での条件文にある#の意味
-
だれがとけるの?
-
インクリメント演算子の前置(+...
-
プログラミングで変数と関数の...
-
datagridviewに行...
-
C言語 列挙型(enum型)変数について
-
verilog HDLの[=]と[<=]の使い分け
-
「%」を使って、偶数か奇数かを...
-
i++と++i ってどう違うのですか?
おすすめ情報