A 回答 (4件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
DOUBLE FLOATINGは16進数に変換しても意味ないですよ。
64ビットで暗号化されて(パック化?)入っていますので。
参照URLをご覧下さい。(英語で御免ね。IEEE{アイトリプルイー}754)
参考URL:http://en.wikipedia.org/wiki/Double-precision_fl …
No.2
- 回答日時:
double型でも12バイト(96ビット)の整数を完全に代入することはできないし、逆変換すると下位ビットが0になってしまうこともあると思うのですが、それはいいのでしょうか?
http://msdn.microsoft.com/ja-jp/library/vstudio/ …
によると、Double型は64ビットです。
そのうち、指数とか符号とかに一部が使われるので、整数型に換算すると 53bitしかありません。
http://ja.wikipedia.org/wiki/IEEE_754
No.1
- 回答日時:
16進数の原理はご存知ですよね?
だったらできるんじゃないですか?
Function 十進変換(ByVal ヘキサ As String) As Double
Dim 位置 As Long
Dim 符号 As Long
Dim 数値 As Long
Dim 結果 As Double
'12文字限定
For 位置 = 1 To 12
'位置の示す文字を数値化する
数値 = Val("&H" & Mid(ヘキサ, 位置, 1))
'先頭の場合は符号を設定する
If 位置 = 1 Then
If 数値 > 7 Then 符号 = 15
End If
'結果に加算する
結果 = 結果 * 16 + (数値 Xor 符号)
Next
If 符号 Then 結果 = -結果 - 1
'結果を返す
十進変換 = 結果
End Function
16進への変換も同じです
Function 十六進変換(ByVal 数値 As Double) As String
Dim 位置 As Long
Dim 符号 As Long
Dim 繰越 As Long
Dim 剰余 As Long
Dim 結果 As String
'数値がマイナスならば正にする
If 数値 < 0 Then
数値 = -数値
符号 = 15
繰越 = 1
End If
'12文字限定
For 位置 = 1 To 12
'16で割った剰余を求める
剰余 = 数値 - Fix(数値 / 16) * 16
'数値を更新する
数値 = Fix(数値 / 16)
'負の場合は反転して繰越を加算する
If 符号 Then
剰余 = (剰余 Xor 符号) + 繰越
'15を越えたら繰り越す
If 剰余 > 15 Then
剰余 = 0
繰越 = 1
Else
繰越 = 0
End If
End If
'文字化して前方に付け加える
結果 = Hex(剰余) & 結果
Next
'結果を返す
十六進変換 = 結果
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) マクロ、条件付き書式のfont.color 1 2023/03/28 01:10
- その他(プログラミング・Web制作) プログラミング python pandas 固定長データの出力 2 2022/08/16 11:22
- Word(ワード) ワードで,特定の文字だけ,字体を一括変換する方法は? 1 2023/04/26 10:11
- Excel(エクセル) エクセル文字列の日付を日付けに変える 2 2023/05/13 11:08
- PHP c言語 文字 - '1'+26 3 2022/03/26 20:58
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
友人とのラインで 「~MBと書く...
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
VBAでbmp画像をASCIIデータとし...
-
英数字を含む文字列(0-9,A-Z)...
-
ふりがなをアルファベット化す...
-
VBでIMEの変換文字列を拾いたい
-
教えてください!!
-
C#で16進数からASCIIへの変換の...
-
CString ←→ BSTRの変換について
-
ExcelVBA実行後に時々落ちる
-
EBCDIC⇒SJIS変換の方法
-
ACCESSのVBAで2バイト文字を%x...
-
2バイト文字をJEFからSJISに変...
-
X86アセンブラで 16進数を10進...
-
URLのUTF-8からShift-JISへのデ...
-
COBOLによる全角・半角混...
-
1をA、2をB・・・に変換したい
-
ヘキサコードとバイナリについて
-
2進数を16進に変換する理由
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
std::stringからLPCWSTR型への変換
-
VS 2008(VB.NET)
-
ExcelVBA実行後に時々落ちる
-
ふりがなをアルファベット化す...
-
Excelマクロにて30分単位の計算...
-
英数字を含む文字列(0-9,A-Z)...
-
Symfowareでのデータ型変換につ...
-
JIS → S-JIS コード変換するには
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
フォームのコントロールのバッ...
-
数字5桁文字コード?
-
バイナリデータ→ASCII 変換プ...
-
2バイト文字をJEFからSJISに変...
-
CString ←→ BSTRの変換について
-
VBScript ASC関数:文字エンコ...
-
入力した文字を全て自動で全角...
おすすめ情報