Convert integer to hex und hex zu integer
Also ich habe diese Abfrage funktioniert (wo signal_data
eine Spalte) in Sybase-aber es funktioniert nicht in Microsoft SQL Server:
HEXTOINT(SUBSTRING((INTTOHEX(signal_data)),5,2)) as Signal
Außerdem habe ich es in Excel (wo A1
enthält den Wert):
=HEX2DEC(LEFT(DEC2HEX(A1),LEN(DEC2HEX(A1))-2))
Weiß jemand, wie ich dies in SQL Server?
InformationsquelleAutor Nick Sinas | 2009-03-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konvertieren von INT zu hex:
Konvertieren von hex zu INT:
Update 2015-03-16
Obigen Beispiel hat die Einschränkung, dass es nur funktioniert, wenn der HEX-Wert wird als integer-literal. Der Vollständigkeit halber, wenn der Wert zu konvertieren ist ein hexadezimal-string (z.B. in einer varchar-Spalte) verwenden:
Hinweis: muss Die Zeichenfolge enthalten, die eine gerade Anzahl von hex-Ziffern. Eine ungerade Anzahl von Ziffern ergeben einen Fehler.
Mehr details finden Sie in der "Binären Styles" Abschnitt des CAST und CONVERT (Transact-SQL). Ich glaube, dass SQL Server 2008 oder höher ist erforderlich.
Karwin, Pavan korrekt ist. Sql Server 2008 kann dies über die
convert
Funktion aber 2005 und unten nicht.Bei Verwendung von 8-Hex-Zeichen, wie mit ARGB umwandeln BIGINT anstatt INT. Der max-Wert für INT ist nur 2,147,483,647, oder 7FFFFFFF. Vorsicht bei der Verwendung von INT, die round trip zurück auf hex funktioniert, aber die Ergebnisse sind unterschiedlich von Excel Hex2Dec.
SELECT CONVERT(INT, CONVERT(varbinary, '01', 2))
zurück12337
(SQL Server 2005)InformationsquelleAutor Bill Karwin
Eigentlich die eingebaute Funktion namens Meister.dbo.fn_varbintohexstr.
So, zum Beispiel:
Gibt Sie
100 0x00000064
Die meisten der 'cons' - abgesehen von der fehlenden Dokumentation/Spezifikation - sound wie BS!.
InformationsquelleAutor justinpitts
SQL Server-äquivalente zu Excel ist string-basiert, DEC2HEX, HEX2DEC Funktionen:
InformationsquelleAutor Kip Bryan
Konvertieren von int zu hex:
SELECT FORMAT(512+255,'X')
Und der Fall von " X " bestimmt den Fall des hex-Ausgabe. bis gestimmt.
InformationsquelleAutor DenNukem
Ist es möglich, über die Funktion FORMAT verfügbar, die auf SQL Server 2012 und höher
Ergebnisse in:
InformationsquelleAutor wndproc
Das traditionelle 4-bit-hex ist ziemlich direkt.
Hex-String in Integer (Vorausgesetzt, der Wert wird gespeichert, im Feld " FHexString) :
Integer-to-Hex-String (Vorausgesetzt, der Wert wird gespeichert, im Feld " FInteger):
Wichtig zu beachten ist, dass, wenn Sie beginnen, verwenden Sie bit-Größen, die Ursache register-sharing, insbesondere auf einem intel-Rechner, Ihre High und Low und Linke und Rechte in die Register getauscht werden, aufgrund der little-endian-Natur von Intel. Wenn beispielsweise eine varbinary(3), wir reden über ein 6 Hex-Zeichen. In diesem Fall, Ihre bits gekoppelt sind, wie die folgenden Indizes von rechts nach Links "54,32,10". In einem intel-system, die Sie erwarten würden, "76,54,32,10". Da Sie nur mit 6 von den 8, die Sie sich merken müssen, zu tun, die swaps selbst. "76,54" qualifizieren sich als Links und "32,10" qualifizieren als Ihre Rechte. Das Komma trennt Ihre high und low. Intel tauscht die hoch und Tiefs, dann ist die linke und die Rechte. So zu tun, eine Umstellung...seufz, haben Sie, um Sie zu tauschen, Euch zum Beispiel den folgenden wandelt die ersten 6 von 8 hex-Zeichen:
Es ist ein bisschen kompliziert, so dass ich versuchen würde, um meine Umbauten zu 8 hex-Zeichen (varbinary(4)).
In der Zusammenfassung, dies sollte Ihre Frage beantworten. Umfassend.
InformationsquelleAutor Neel Edwards
Hier ist die Funktion für die SQL-server wandelt die integer-Wert in seine hexadezimale Darstellung als varchar. Es sollte sich leicht anpassen, um andere Datenbank-Typen
Beispiel:
SQL:
die Formatierung ist nun behoben.
Ich mag diese Lösung, weil es leicht modifizierbar in eine noch mächtigere. Ich lieferte so ein Beispiel Lösung von mit der Länge der Sequenz als Basis.
InformationsquelleAutor Maksym Kozlenko
InformationsquelleAutor Donaciano
Verwenden
master.dbo.fnbintohexstr(16777215)
zu konvertieren, um einvarchar
Darstellung.select master.sys.fn_varbintohexstr(1)
im Jahr 2008InformationsquelleAutor
Die Antwort von Maksym Kozlenko ist schön und kann leicht modifiziert behandeln Codierung einen numerischen Wert zu jedem code-format. Zum Beispiel:
So, eine große Zahl wie 150 Millionen, wird nur aus 6 Zeichen (150,000,000 = "MQGJMU")
Konnte man auch mit verschiedenen Charakteren in verschiedenen Sequenzen, wie ein Verschlüsselndes Gerät. Oder pass in die code-Zeichen und die Länge der Zeichen und verwenden Sie als Salzen Methode für die Verschlüsselung.
- Und auf der Rückseite:
InformationsquelleAutor Jason Gilley
Gegeben:
IntToHexStr:
HexStrToInt:
InformationsquelleAutor Bob Platt
Ist die Arbeit für mich als ein Ausdruck der schriftart, Farbe
InformationsquelleAutor Julian
Konvertieren Hex-strings in INT -, habe ich dieses in der Vergangenheit. Es kann geändert werden, um zu konvertieren jede base INT in der Tat (Oktal -, Binär -, was auch immer)
InformationsquelleAutor j_s_kelley
Unten sind zwei Funktionen: dbo.HexToInt und dbo.IntToHex, ich benutze Sie für eine solche Umwandlung:
Und das zweite:
InformationsquelleAutor byte
Maksym Kozlenko hat eine schöne Lösung, und die anderen kommen in der Nähe entriegeln Sie das volle potential aber dann vermisse völlig klar, dass Sie es kann eine beliebige Sequenz von Zeichen, und verwenden es Länge wie die Basis. Das ist, warum ich mag dieses leicht modifizierte version seiner Lösung, weil es für base 16-oder base-17, - und etc.
Was zum Beispiel, wenn Sie wollten, Buchstaben und zahlen, aber nicht, wie ich ' s für suchen wie 1 ist und O ist für uns wie 0 ist. Sie kann eine beliebige Sequenz auf diese Weise. Unten ist eine form von "Basis 36" überspringt die I und O für eine "modifizierte base 34". Un-Kommentar die hex-Linie statt zu laufen als hex.
Ich zog auch Wert über einer funktionierenden Wert, und dann arbeiten aus der Arbeits-Wert zu kopieren, als eine persönliche Vorliebe.
Unten ist zusätzlich für die Umkehrung der transformation, für jede Sequenz, mit der Basis, definiert als die Länge der Sequenz.
InformationsquelleAutor Greg