vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Float zu RGBA Berechnen 
Autor: DerMicha
Datum: 05.09.10 18:57

Also er zählt das jetzt in float von 0 bis 1.0 also müsste das ja richtig sein ABER der Float wird ürgendwie falsch gezählt oder so.

Statt 3E000000 steht 3E008080. Könntest du mir vileicht helfen diese kleine korrektur vorzunehmen oder wo ich es ändern könnte?

Dez --> Float
Function dec_to_float(ByVal dec As Decimal) As String
        Dim d1 As Decimal = 0
        Dim d2 As Decimal = 0
        Dim d3 As Decimal = 0
        Dim d4 As Decimal = 0
 
        Dim i1 As Integer = 0
        Dim i2 As Integer = 0
        Dim i3 As Integer = 0
        Dim i4 As UInteger = 0
        Dim i5 As UInteger = 0
        Dim i6 As UInteger = 0
        Dim i7 As UInteger = 0
        'Dim i8 As UInteger = 0
 
        Dim s1 As String = ""
        Dim s2 As String = ""
        Dim s3 As String = ""
        Dim s4 As String = ""
        Try
 
            If dec < 0 Then 'evaluate sign bit
                i7 = 2 ^ 31
                dec = -dec
            End If
            '******************************************************
            If dec <> 0 Then
 
                '******************************************************
                d1 = dec
                If d1 >= 2 Then
                    Do Until d1 < 2
                        d1 = d1 / 2
                        i1 = i1 + 1
                    Loop
 
                ElseIf d1 < 1 Then
                    Do Until d1 >= 1
                        d1 = d1 * 2
                        i1 = i1 - 1
                    Loop
 
                End If
                i1 = i1 + 127 'exponent
                '******************************************************
 
                d2 = d1
                d3 = Math.Floor(d2)
                Do Until (d3 = d2) Or (d2 > 4294967295) _
                  '21474836484294967295 (i3 >= 23) 
                    d4 = Math.Floor(d2)
                    d2 = d2 * 2
                    d3 = Math.Floor(d2)
                    i3 = i3 + 1
 
                Loop
 
                If d3 > 4294967295 Then
                    i4 = Convert.ToUInt32(d4)
                Else
                    i4 = Convert.ToUInt32(d3)
                End If
 
                Do Until (i4 And 2 ^ 31) = 2 ^ 31
                    i4 = i4 << 1
                Loop
 
                i5 = (i4 << 1)
                i5 = (i5 >> 9) 'mantissa bits 22 -> 0
                '*********************************************************
 
                i6 = (i1 << 23) + i5 'exponent + mantissa
                i6 = i6 + i7 'sign + exponent + mantissa
 
                s4 = i6.ToString("X8") ' end result
 
            ElseIf dec = 0 Then
                'i6 = i6 + i7
                s4 = i6.ToString("X8") ' end result
 
            End If
 
        Catch ex As Exception
 
        End Try
 
        Return s4
    End Function
Gruß Micha

Beitrag wurde zuletzt am 05.09.10 um 19:04:51 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Float zu RGBA Berechnen2.030DerMicha05.09.10 09:25
Re: Float zu RGBA Berechnen1.265ModeratorDaveS05.09.10 13:00
Re: Float zu RGBA Berechnen1.275DerMicha05.09.10 18:22
Re: Float zu RGBA Berechnen1.139ModeratorDaveS05.09.10 18:52
Re: Float zu RGBA Berechnen1.236DerMicha05.09.10 18:57

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel