Maison base de données tutoriel mysql SQL Server中,实现二进制与字符类型之间的数据转换

SQL Server中,实现二进制与字符类型之间的数据转换

Jun 07, 2016 pm 05:40 PM
sql sql server 函数

在工控应用上,返回的数据经常会以二进制的形成存储,而这些二进制数据又是以每4个bit表示一个十六进制的数据内容。解析的时候,往往是一个字节(Byte)占用8个

 

在工控应用上,香港虚拟主机,返回的数据经常会以二进制的形成存储,而这些二进制数据又是以每4个bit表示一个十六进制的数据内容。解析的时候,香港服务器租用,往往是一个字节(Byte)占用8个位(bit),高位4bit 表示一个十六进制数据,低位4bit 表示一个十六进制数据。

 

问题描述:在SQL Server 数据库中,如何实现二进制数据与字符串数据之间的直接转换?

一定会有人立马反问我:为什么不在程序中使用 C# 或者 JAVA 或者 C++ 来处理这个业务呢?我的回答是:这个我知道,也已经实现了。但在一些特殊的应用环境和业务需求面前(如:对数据的统计、对数据的分析),我必须这么做!

 

SQL Server 数据库中,实现 varbinary 类型转换成 varchar 类型

实现的思路是:

每次取得 varbinary 中一个字节的数据,然后除以16 获得高位的4bit数据,再模16获得低位的4bit数据;分别从固定字符串中以下标的形式匹配对应的字符,最后累加起来即可。

代码如下:

测试示例:

select dbo.varbin2hexstr(0x1432fabcdef1234567890)

 

SQL Server 数据库中,实现 varchar 类型转换成 varbinary 类型

一定会有人立马想到:既然已经实现了varbinary 类型转换成 varchar 类型,接下来需要做的,只是将函数逆向反转实现便可。但实现也并非如此!实现的思路是:

先将整个字符串按照每两位分组;

     为什么不按照每8位或每4位进行分组?是为了考虑到函数的通用性。

     如果按照每 8位 或者 每4位 分组,则整个字符串必须是8或者4的倍数,否则将出现字符不足,前面补 0的情况。

然后对每个字符进行处理,如:字符“A B C D E F” 对应转换为“10 11 12 13 14 15”;

接着对每2个字符进行 16 的幂运算,并求和。如: AB = 10 * 16的一次方 + 11 * 16的零次方;

再将这个2个字符的整数和,转换为一个字节(Byte)长度的 varbinary 数据;

最后将所有的 varbinary 数据直接相加即可。

代码如下:

测试示例:

)

(完)

【2012年度IT博客大赛】我的参赛主页

记得帮我投票哦 ~ 谢谢!

本文出自 “xugang” 博客,请务必保留此出处

,美国服务器
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Conseils pour créer dynamiquement de nouvelles fonctions dans les fonctions Golang Conseils pour créer dynamiquement de nouvelles fonctions dans les fonctions Golang Apr 25, 2024 pm 02:39 PM

Le langage Go propose deux technologies de création de fonctions dynamiques : la fermeture et la réflexion. les fermetures permettent d'accéder aux variables dans la portée de la fermeture, et la réflexion peut créer de nouvelles fonctions à l'aide de la fonction FuncOf. Ces technologies sont utiles pour personnaliser les routeurs HTTP, mettre en œuvre des systèmes hautement personnalisables et créer des composants enfichables.

Considérations relatives à l'ordre des paramètres dans la dénomination des fonctions C++ Considérations relatives à l'ordre des paramètres dans la dénomination des fonctions C++ Apr 24, 2024 pm 04:21 PM

Dans la dénomination des fonctions C++, il est crucial de prendre en compte l’ordre des paramètres pour améliorer la lisibilité, réduire les erreurs et faciliter la refactorisation. Les conventions courantes d'ordre des paramètres incluent : action-objet, objet-action, signification sémantique et conformité de la bibliothèque standard. L'ordre optimal dépend de l'objectif de la fonction, des types de paramètres, de la confusion potentielle et des conventions du langage.

Comment écrire des fonctions efficaces et maintenables en Java ? Comment écrire des fonctions efficaces et maintenables en Java ? Apr 24, 2024 am 11:33 AM

La clé pour écrire des fonctions Java efficaces et maintenables est la suivante : restez simple. Utilisez un nom significatif. Gérer des situations particulières. Utilisez une visibilité appropriée.

Collection complète de formules de fonctions Excel Collection complète de formules de fonctions Excel May 07, 2024 pm 12:04 PM

1. La fonction SOMME permet de sommer les nombres d'une colonne ou d'un groupe de cellules, par exemple : =SOMME(A1:J10). 2. La fonction MOYENNE permet de calculer la moyenne des nombres dans une colonne ou un groupe de cellules, par exemple : =AVERAGE(A1:A10). 3. Fonction COUNT, utilisée pour compter le nombre de nombres ou de texte dans une colonne ou un groupe de cellules, par exemple : =COUNT(A1:A10) 4. Fonction IF, utilisée pour effectuer des jugements logiques basés sur des conditions spécifiées et renvoyer le résultat correspondant.

Exception de fonction C++ avancée : gestion personnalisée des erreurs Exception de fonction C++ avancée : gestion personnalisée des erreurs May 01, 2024 pm 06:39 PM

La gestion des exceptions en C++ peut être améliorée grâce à des classes d'exceptions personnalisées qui fournissent des messages d'erreur spécifiques, des informations contextuelles et effectuent des actions personnalisées en fonction du type d'erreur. Définissez une classe d'exception héritée de std::exception pour fournir des informations d'erreur spécifiques. Utilisez le mot-clé throw pour lancer une exception personnalisée. Utilisez Dynamic_cast dans un bloc try-catch pour convertir l'exception interceptée en un type d'exception personnalisé. Dans le cas réel, la fonction open_file lève une exception FileNotFoundException. La capture et la gestion de l'exception peuvent fournir un message d'erreur plus spécifique.

Choses à noter lorsque les fonctions Golang reçoivent des paramètres de carte Choses à noter lorsque les fonctions Golang reçoivent des paramètres de carte Jun 04, 2024 am 10:31 AM

Lors du passage d'une carte à une fonction dans Go, une copie sera créée par défaut et les modifications apportées à la copie n'affecteront pas la carte d'origine. Si vous devez modifier la carte originale, vous pouvez la passer via un pointeur. Les cartes vides doivent être manipulées avec précaution, car ce sont techniquement des pointeurs nuls, et passer une carte vide à une fonction qui attend une carte non vide provoquera une erreur.

Utilisation particulière des paramètres par défaut des fonctions C++ et des paramètres variables dans la programmation de modèles Utilisation particulière des paramètres par défaut des fonctions C++ et des paramètres variables dans la programmation de modèles Apr 22, 2024 pm 03:12 PM

Utilisation particulière des paramètres par défaut et des paramètres variables dans la programmation de modèles en C++ : les paramètres par défaut permettent aux fonctions d'utiliser des valeurs par défaut lorsqu'aucun paramètre n'est spécifié, réalisant ainsi une surcharge de fonctions génériques. Les paramètres variables permettent aux fonctions de recevoir n'importe quel nombre de paramètres, obtenant ainsi une polyvalence de code et peuvent être utilisés pour des fonctions ou des conteneurs génériques qui gèrent n'importe quel nombre de paramètres. Cas pratique : Implémentation d'une fonction générale de formatage décimal, utilisant des paramètres par défaut pour spécifier différentes précisions pour différents types de décimales.

Comment interagir avec les données JSON en utilisant SQL dans Golang ? Comment interagir avec les données JSON en utilisant SQL dans Golang ? Jun 03, 2024 am 11:47 AM

Il existe les étapes suivantes pour interagir avec les données JSON via SQL dans Golang : Utilisez la fonction json.Unmarshal pour analyser les données JSON dans une structure Go et convertir JSON en structure. Utilisez le package database/sql pour accéder et exploiter les bases de données SQL et effectuer des opérations telles que des insertions et des requêtes. En combinant les étapes ci-dessus, vous pouvez créer une application basée sur SQL et JSON dans Go pour implémenter des fonctions telles que l'enregistrement et la connexion des utilisateurs.

See all articles