Skip to content

Commit 7b16e8b

Browse files
committed
added conversion functions
1 parent 779065c commit 7b16e8b

File tree

6 files changed

+251
-117
lines changed

6 files changed

+251
-117
lines changed

Forms/Form1.frm

Lines changed: 155 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,19 @@ Begin VB.Form Form1
44
ClientHeight = 8655
55
ClientLeft = 120
66
ClientTop = 465
7-
ClientWidth = 13320
7+
ClientWidth = 13455
88
LinkTopic = "Form1"
99
ScaleHeight = 8655
10-
ScaleWidth = 13320
10+
ScaleWidth = 13455
1111
StartUpPosition = 3 'Windows-Standard
12+
Begin VB.CommandButton Command8
13+
Caption = "Conversion 16-32-64"
14+
Height = 375
15+
Left = 11520
16+
TabIndex = 8
17+
Top = 120
18+
Width = 1815
19+
End
1220
Begin VB.CommandButton Command7
1321
Caption = "Command7"
1422
Height = 375
@@ -186,18 +194,18 @@ Private Sub Command6_Click()
186194
If Not MUnsigned.UInt16_TryParse(sVal, i, 16) Then Exit Sub
187195
s = s & "s: " & sVal & " = v: " & MUnsigned.UInt16_ToStr(i) & vbCrLf
188196

189-
Dim L As Long
197+
Dim l As Long
190198
sVal = "10101010101010101010101010101010"
191-
If Not MUnsigned.UInt32_TryParse(sVal, L, 2) Then Exit Sub
192-
s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(L) & vbCrLf
199+
If Not MUnsigned.UInt32_TryParse(sVal, l, 2) Then Exit Sub
200+
s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(l) & vbCrLf
193201

194202
sVal = "1234567890"
195-
If Not MUnsigned.UInt32_TryParse(sVal, L, 10) Then Exit Sub
196-
s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(L) & vbCrLf
203+
If Not MUnsigned.UInt32_TryParse(sVal, l, 10) Then Exit Sub
204+
s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(l) & vbCrLf
197205

198206
sVal = "ABCDEF98"
199-
If Not MUnsigned.UInt32_TryParse(sVal, L, 16) Then Exit Sub
200-
s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(L) & vbCrLf
207+
If Not MUnsigned.UInt32_TryParse(sVal, l, 16) Then Exit Sub
208+
s = s & "s: " & sVal & " = v: " & MUnsigned.UInt32_ToStr(l) & vbCrLf
201209

202210
Text1.Text = s
203211
End Sub
@@ -219,16 +227,65 @@ Catch:
219227
MsgBox "Error: " & Err.Number & vbCrLf & Err.LastDllError & vbCrLf & Err.Description
220228
End Sub
221229

230+
Private Sub Command8_Click()
231+
Dim i As Integer
232+
Dim l As Long
233+
Dim c As Currency
234+
Dim s As String
235+
i = 12345:
236+
s = s & "i = " & i & vbCrLf
237+
238+
l = MUnsigned.UInt16_ToUInt32(i)
239+
s = s & "l = MUnsigned.UInt16_ToUInt32(i)" & vbCrLf
240+
s = s & "l = " & l & vbCrLf
241+
242+
c = MUnsigned.UInt16_ToUInt64(i)
243+
s = s & "c = MUnsigned.UInt16_ToUInt64(i)" & vbCrLf
244+
s = s & "c = " & c & vbCrLf
245+
246+
247+
i = 0: c = 0
248+
l = 12345
249+
s = s & "l = " & l & vbCrLf
250+
251+
i = MUnsigned.UInt32_ToUInt16(l)
252+
s = s & "i = MUnsigned.UInt32_ToUInt16(l)" & vbCrLf
253+
s = s & "i = " & i & vbCrLf
254+
255+
l = 123456789
256+
s = s & "l = " & l & vbCrLf
257+
c = MUnsigned.UInt32_ToUInt64(l)
258+
s = s & "c = MUnsigned.UInt32_ToUInt64(l)" & vbCrLf
259+
s = s & "c = " & c & vbCrLf
260+
261+
262+
i = 0
263+
l = 0
264+
c = 1.2345
265+
s = s & "c = " & c & vbCrLf
266+
i = MUnsigned.UInt64_ToUInt16(c)
267+
s = s & "i = MUnsigned.UInt64_ToUInt16(c)" & vbCrLf
268+
s = s & "i = " & i & vbCrLf
269+
270+
c = 123.4567
271+
s = s & "c = " & c & vbCrLf
272+
l = MUnsigned.UInt64_ToUInt32(c)
273+
s = s & "l = MUnsigned.UInt64_ToUInt32(c)" & vbCrLf
274+
s = s & "l = " & l & vbCrLf
275+
276+
Text1.Text = s
277+
End Sub
278+
222279
Private Sub Form_Load()
223-
Me.Caption = "Unsigned operations on signed Int32+Int64 - v" & App.Major & "." & App.Minor & "." & App.Revision
280+
Me.Caption = "Unsigned operations on signed In16+Int32+Int64 - v" & App.Major & "." & App.Minor & "." & App.Revision
224281
End Sub
225282

226283
Private Sub Form_Resize()
227-
Dim L As Single: L = 0
284+
Dim l As Single: l = 0
228285
Dim t As Single: t = Text1.Top
229286
Dim W As Single: W = Me.ScaleWidth
230287
Dim H As Single: H = Me.ScaleHeight - t
231-
If W > 0 And H > 0 Then Text1.Move L, t, W, H
288+
If W > 0 And H > 0 Then Text1.Move l, t, W, H
232289
End Sub
233290

234291
Private Sub Command1_Click()
@@ -246,125 +303,125 @@ Sub Debug_Print(ByVal s As String)
246303
End Sub
247304

248305
Sub TestDll()
249-
Dim V1 As Long
250-
Dim V2 As Long
306+
Dim v1 As Long
307+
Dim v2 As Long
251308
Dim lret As Long
252309
Dim cret As Currency
253310
Dim s As String
254311

255-
V1 = 123
256-
V2 = 32
312+
v1 = 123
313+
v2 = 32
257314

258-
lret = UInt32_Add_ref(V1, V2)
315+
lret = UInt32_Add_ref(v1, v2)
259316
Debug_Print lret '155
260317

261-
lret = UInt32_Add(V1, V2)
318+
lret = UInt32_Add(v1, v2)
262319
Debug_Print lret '155
263320

264-
lret = UInt32_Sub(V1, V2)
321+
lret = UInt32_Sub(v1, v2)
265322
Debug_Print lret '91
266323

267-
lret = UInt32_Mul(V1, V2)
324+
lret = UInt32_Mul(v1, v2)
268325
Debug_Print lret '3936
269326

270-
V1 = 2147483647
271-
V2 = 100
272-
cret = UInt32_Mul(V1, V2)
327+
v1 = 2147483647
328+
v2 = 100
329+
cret = UInt32_Mul(v1, v2)
273330
Debug_Print cret '21474836,4700
274331

275-
V1 = 123456789
276-
V2 = 33
277-
lret = UInt32_Div(V1, V2)
332+
v1 = 123456789
333+
v2 = 33
334+
lret = UInt32_Div(v1, v2)
278335
Debug_Print lret '3741114
279336

280-
V1 = &HCAFE&
281-
lret = UInt32_Shl(V1, 8)
282-
Debug_Print "Shl(" & Hex(V1) & ", 8) = " & Hex(lret)
337+
v1 = &HCAFE&
338+
lret = UInt32_Shl(v1, 8)
339+
Debug_Print "Shl(" & Hex(v1) & ", 8) = " & Hex(lret)
283340

284-
V1 = UInt32_Shr(lret, 8)
285-
Debug_Print "Shr(" & Hex(lret) & ", 8) = " & Hex(V1)
341+
v1 = UInt32_Shr(lret, 8)
342+
Debug_Print "Shr(" & Hex(lret) & ", 8) = " & Hex(v1)
286343

287-
V1 = -V1
288-
lret = UInt32_Sar(V1, 8)
289-
Debug_Print "Sar(" & Hex(V1) & ", 8) = " & Hex(lret)
344+
v1 = -v1
345+
lret = UInt32_Sar(v1, 8)
346+
Debug_Print "Sar(" & Hex(v1) & ", 8) = " & Hex(lret)
290347

291-
V1 = &HCAFEBABE
292-
lret = UInt32_Rol(V1, 8)
293-
Debug_Print "Rol(" & Hex(V1) & ", 8) = " & Hex(lret)
348+
v1 = &HCAFEBABE
349+
lret = UInt32_Rol(v1, 8)
350+
Debug_Print "Rol(" & Hex(v1) & ", 8) = " & Hex(lret)
294351

295-
V1 = &HCAFEBABE
296-
lret = UInt32_Ror(V1, 8)
297-
Debug_Print "Ror(" & Hex(V1) & ", 8) = " & Hex(lret)
352+
v1 = &HCAFEBABE
353+
lret = UInt32_Ror(v1, 8)
354+
Debug_Print "Ror(" & Hex(v1) & ", 8) = " & Hex(lret)
298355

299-
V1 = &HCAFE&
300-
lret = UInt32_Rcl(V1, 12)
301-
Debug_Print "Rcl(" & Hex(V1) & ", 12) = " & Hex(lret)
356+
v1 = &HCAFE&
357+
lret = UInt32_Rcl(v1, 12)
358+
Debug_Print "Rcl(" & Hex(v1) & ", 12) = " & Hex(lret)
302359

303-
V1 = &HCAFE0000
304-
lret = UInt32_Rcr(V1, 12)
305-
Debug_Print "Rcr(" & Hex(V1) & ", 12) = " & Hex(lret)
360+
v1 = &HCAFE0000
361+
lret = UInt32_Rcr(v1, 12)
362+
Debug_Print "Rcr(" & Hex(v1) & ", 12) = " & Hex(lret)
306363

307-
V1 = &HCAFEBABE
308-
V2 = &HB000&
309-
lret = UInt32_And(V1, V2)
310-
Debug_Print "And(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret)
364+
v1 = &HCAFEBABE
365+
v2 = &HB000&
366+
lret = UInt32_And(v1, v2)
367+
Debug_Print "And(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret)
311368

312-
V1 = &HCAFE0ABE
313-
V2 = &HB000&
314-
lret = UInt32_Or(V1, V2)
315-
Debug_Print "Or(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret)
369+
v1 = &HCAFE0ABE
370+
v2 = &HB000&
371+
lret = UInt32_Or(v1, v2)
372+
Debug_Print "Or(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret)
316373

317-
V1 = &H35014541
318-
lret = UInt32_Not(V1)
319-
Debug_Print "Not(" & Hex(V1) & ") = " & Hex(lret)
374+
v1 = &H35014541
375+
lret = UInt32_Not(v1)
376+
Debug_Print "Not(" & Hex(v1) & ") = " & Hex(lret)
320377

321-
V1 = &HCAFE0ABE
322-
V2 = &HCAFEB000
323-
lret = UInt32_XOr(V1, V2)
324-
Debug_Print "XOr(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret)
378+
v1 = &HCAFE0ABE
379+
v2 = &HCAFEB000
380+
lret = UInt32_XOr(v1, v2)
381+
Debug_Print "XOr(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret)
325382

326-
V1 = &HCAFE0ABE
327-
V2 = &HCAFEB000
328-
lret = UInt32_XNOr(V1, V2)
329-
Debug_Print "XNOr(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret)
383+
v1 = &HCAFE0ABE
384+
v2 = &HCAFEB000
385+
lret = UInt32_XNOr(v1, v2)
386+
Debug_Print "XNOr(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret)
330387

331-
V1 = &HCAFE0ABE
332-
V2 = &HCAFEB000
333-
lret = UInt32_NOr(V1, V2)
334-
Debug_Print "NOr(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret)
388+
v1 = &HCAFE0ABE
389+
v2 = &HCAFEB000
390+
lret = UInt32_NOr(v1, v2)
391+
Debug_Print "NOr(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret)
335392

336-
V1 = &HCAFE0ABE
337-
V2 = &HCAFEB000
338-
lret = UInt32_NAnd(V1, V2)
339-
Debug_Print "NAnd(" & Hex(V1) & ", " & Hex(V2) & ") = " & Hex(lret)
393+
v1 = &HCAFE0ABE
394+
v2 = &HCAFEB000
395+
lret = UInt32_NAnd(v1, v2)
396+
Debug_Print "NAnd(" & Hex(v1) & ", " & Hex(v2) & ") = " & Hex(lret)
340397

341398

342399

343400

344-
V1 = -1
401+
v1 = -1
345402
's = Space(10)
346-
s = UInt32_ToStr(V1) ', StrPtr(s)
403+
s = UInt32_ToStr(v1) ', StrPtr(s)
347404
Debug_Print s 'Trim0(s) '4294967295
348405

349-
V1 = -1
406+
v1 = -1
350407
's = Space(8)
351-
s = UInt32_ToHex(V1) ', StrPtr(s)
408+
s = UInt32_ToHex(v1) ', StrPtr(s)
352409
Debug_Print s 'Trim0(s) '4294967295
353410

354-
V1 = -1
411+
v1 = -1
355412
's = Space(32)
356-
s = UInt32_ToBin(V1) '1, StrPtr(s)
413+
s = UInt32_ToBin(v1) '1, StrPtr(s)
357414
Debug_Print s 'Trim0(s) '4294967295
358415

359-
V1 = 32
360-
V2 = 65
416+
v1 = 32
417+
v2 = 65
361418

362-
lret = U4Add(U4Sub(100, U4Mul(2, U4Div(V1, 4))), U4Div(V2, U4Add(6, 7)))
419+
lret = U4Add(U4Sub(100, U4Mul(2, U4Div(v1, 4))), U4Div(v2, U4Add(6, 7)))
363420
's = Space(10): UInt32_ToStr lret, StrPtr(s)
364421
s = UInt32_ToStr(lret)
365422
Debug_Print s
366423

367-
lret = (100 - (2 * V1 / 4)) + (V2 / (6 + 7))
424+
lret = (100 - (2 * v1 / 4)) + (v2 / (6 + 7))
368425
's = Space(10): UInt32_ToStr lret, StrPtr(s)
369426
s = UInt32_ToStr(lret)
370427
Debug_Print s
@@ -385,8 +442,8 @@ Sub TestDll()
385442
s = UInt64_ToStr(cret) ', StrPtr(s)
386443
Debug_Print s '7223372036854775805
387444

388-
V1 = &HCAFEBABE
389-
Dim d: d = UInt32_ToDec(V1)
445+
v1 = &HCAFEBABE
446+
Dim d: d = UInt32_ToDec(v1)
390447
Debug_Print VarType(d) & " " & CStr(d) '& " " & Hex(d) '14 3405691582
391448

392449
c1 = 12345.6789
@@ -457,41 +514,41 @@ Sub Test_ToStr()
457514

458515

459516
Dim r As Long 'radix
460-
Dim L As Long
517+
Dim l As Long
461518

462519
v = 14021970
463520
r = 10
464-
L = LogN(v, r) + 1
465-
s = Space$(L)
521+
l = LogN(v, r) + 1
522+
s = Space$(l)
466523
ret = Int32_ToStrR(v, StrPtr(s), r)
467524
Debug_Print s
468525

469-
If ret <> L * 2 Then
470-
Debug_Print "error r<>l: r=" & r & "; l=" & L
526+
If ret <> l * 2 Then
527+
Debug_Print "error r<>l: r=" & r & "; l=" & l
471528
End If
472529

473530
v = &H1CAFEBAB
474531
r = 16
475-
L = Ceiling(LogN(v, r))
476-
s = Space$(L)
532+
l = Ceiling(LogN(v, r))
533+
s = Space$(l)
477534
ret = Int32_ToStrR(v, StrPtr(s), r)
478535

479536
Debug_Print s
480537

481-
If ret <> L * 2 Then
482-
Debug_Print "error r<>l: r=" & r & "; l=" & L
538+
If ret <> l * 2 Then
539+
Debug_Print "error r<>l: r=" & r & "; l=" & l
483540
End If
484541

485542
v = 987654321
486543
r = 10
487-
L = Ceiling(LogN(v, r))
488-
s = Space$(L)
544+
l = Ceiling(LogN(v, r))
545+
s = Space$(l)
489546
ret = Int32_ToStrR(v, StrPtr(s), r)
490547

491548
Debug_Print s
492549

493-
If ret <> L * 2 Then
494-
Debug_Print "error r<>l: r=" & r & "; l=" & L * 2
550+
If ret <> l * 2 Then
551+
Debug_Print "error r<>l: r=" & r & "; l=" & l * 2
495552
End If
496553

497554
End Sub

0 commit comments

Comments
 (0)