Maison interface Web js tutoriel javaScript实现浮点数转十六进制字符_javascript技巧

javaScript实现浮点数转十六进制字符_javascript技巧

May 16, 2016 pm 05:18 PM
十六进制 浮点数

最近一个嵌入式项目中需要WEB功能,因此想到利用HTML+JavaScript实现一些参数配置功能,参数由JavaScript生成十六进制数据,通过POST提交给单片机,然后再直接使用,以充分利用浏览器的计算能力。

由于JavaScript对浮点数的支持很弱,直接使用浮点数转十六进制功能,双不能实现平常在C语言中实现的4字节的存储表示法,通过搜索,并没有找到相关功能代码,在Node.js的Buffer类可以实现此功能,但又没办法使用(单片机存储空间有限),也没办法找到具体是如何实现的(看不太懂)。

例如:

123.456 ==》 0x42F6E979在C语言中,直接将一个浮点数转换成unsigned int再输出成十六进数就可以了,但在JavaScript中实现就不那么直接了。

有幸在网上找到了一个用C#实现的IEEE754标准的浮点数转换代码(IEEE754浮点数转换器(C#实现)点击打开链接),通过将此代码转换成JavaScript,完成了此份工作,为此,将代码贴出来,共享。

另外,我只实现了转成十六制,没有实现逆转(逆转代码)在C#代码中也有。

通过如下代码可以实现如下:
get_float_hex(123.456) ==> 42F6E979

复制代码 代码如下:

function DecToBinTail(dec, pad)
{
var bin = "";
var i;
for (i = 0; i {
dec *= 2;
if (dec>= 1)
{
dec -= 1;
bin += "1";
}
else
{
bin += "0";
}
}
return bin;
}
function DecToBinHead(dec,pad)
{
var bin="";
var i;
for (i = 0; i {
bin = (parseInt(dec % 2).toString()) + bin;
dec /= 2;
}
return bin;
}
function get_float_hex(decString)
{
var dec = decString;
var sign;
var signString;
var decValue = parseFloat(Math.abs(decString));
if (decString.toString().charAt(0) == '-')
{
sign = 1;
signString = "1";
}
else
{
sign = 0;
signString = "0";
}
if (decValue==0)
{
fraction = 0;
exponent = 0;
}
else
{
var exponent = 127;
if (decValue>=2)
{
while (decValue>=2)
{
exponent++;
decValue /= 2;
}
}
else if (decValue{
while (decValue {
exponent--;
decValue *= 2;
if (exponent ==0)
break;
}
}
if (exponent!=0) decValue-=1; else decValue /= 2;

}
var fractionString = DecToBinTail(decValue, 23);
var exponentString = DecToBinHead(exponent, 8);
return Right('00000000'+parseInt(signString + exponentString + fractionString, 2).toString(16),8);
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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines 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)

Comment convertir une chaîne en décimal en php Comment convertir une chaîne en décimal en php Mar 22, 2023 pm 03:22 PM

PHP est un langage de programmation puissant largement utilisé dans le domaine du développement Web. L'une des situations les plus courantes est la nécessité de convertir une chaîne en valeur décimale. Ceci est très utile lors du traitement de données. Dans cet article, nous expliquerons comment convertir une chaîne en décimal en PHP.

Méthode d'arrondi des nombres à virgule flottante PHP Méthode d'arrondi des nombres à virgule flottante PHP Mar 21, 2024 am 09:21 AM

Cet article expliquera en détail la méthode d'arrondi des nombres à virgule flottante PHP. L'éditeur pense que c'est très pratique, je la partage donc avec vous comme référence, j'espère que vous pourrez gagner quelque chose après avoir lu cet article. Présentation de l'arrondi à virgule flottante PHP Les nombres à virgule flottante sont représentés dans les ordinateurs sous la forme d'un point décimal suivi d'un exposant. Cependant, ils sont souvent stockés sous forme d'approximations avec un nombre limité de chiffres. Lorsque vous devez arrondir un nombre à virgule flottante avec une précision spécifique, il existe plusieurs façons de le faire. Méthode 1. Fonction round() La fonction round() arrondit un nombre à virgule flottante à l'entier le plus proche. Il accepte les nombres à virgule flottante et les paramètres de précision facultatifs. Par exemple : $num=1.55;echoround($num);//Sortie : 2echoround($num,1)

Convertir un nombre à virgule flottante en chaîne à l'aide de la fonction strconv.FormatFloat Convertir un nombre à virgule flottante en chaîne à l'aide de la fonction strconv.FormatFloat Jul 25, 2023 am 11:45 AM

Utilisez la fonction strconv.FormatFloat pour convertir des nombres à virgule flottante en chaînes Dans le langage Go, nous avons souvent besoin de convertir des nombres à virgule flottante en types de chaînes pour les besoins de sortie ou de stockage. Le package strconv est fourni dans le langage Go et la fonction FormatFloat qu'il contient peut convertir les nombres à virgule flottante en types de chaînes. La fonction FormatFloat prend trois paramètres : f représente le nombre à virgule flottante à convertir, fmt représente le format et prec représente le nombre de décimales à conserver. Parmi eux, le paramètre f

Causes et stratégies d'évitement des erreurs de calcul de virgule flottante PHP Causes et stratégies d'évitement des erreurs de calcul de virgule flottante PHP Feb 27, 2024 pm 06:33 PM

En tant que langage de script côté serveur populaire, PHP rencontre souvent des problèmes de perte de précision ou d'erreurs de calcul lors de l'exécution de calculs à virgule flottante. Ces problèmes peuvent affecter la précision et la stabilité du programme. Cet article explorera les causes des erreurs de calcul de virgule flottante PHP, proposera quelques stratégies d'évitement et donnera des exemples de code spécifiques pour référence. 1. Raisons des erreurs de calcul des nombres à virgule flottante PHP. Dans les ordinateurs, les nombres à virgule flottante sont représentés sous forme binaire, et le binaire ne peut pas représenter avec précision toutes les décimales, ce qui conduit à l'inexactitude des nombres à virgule flottante.

Comment convertir du binaire en hexadécimal en utilisant le langage C ? Comment convertir du binaire en hexadécimal en utilisant le langage C ? Sep 01, 2023 pm 06:57 PM

Les nombres binaires sont représentés par des 1 et des 0. Le système numérique hexadécimal 16 bits est {0,1,2,3…..9,A(10),B(11),…F(15)} afin de convertir la représentation binaire en hexadécimal Représente que le bit L'ID de chaîne est regroupé en morceaux de 4 bits, appelés quartets en commençant par le côté le moins significatif. Chaque bloc est remplacé par le nombre hexadécimal correspondant. Voyons un exemple pour bien comprendre la représentation des nombres hexadécimaux et binaires. 001111100101101100011101 3 E 5 Chambres d'hôtes

Une explication approfondie de PHP BCMath : Libérer le potentiel des opérations sur les nombres Une explication approfondie de PHP BCMath : Libérer le potentiel des opérations sur les nombres Feb 23, 2024 am 09:10 AM

:1. Introduction à BCMath BCMath est une bibliothèque d'extension intégrée à PHP, spécialement utilisée pour gérer les opérations sur les grands nombres entiers et à virgule flottante. Il fournit une multitude de fonctions pour effectuer diverses opérations mathématiques telles que l'addition, la soustraction, la multiplication, la division, le carré et la racine carrée, et prend en charge la représentation numérique dans plusieurs bases. 2. Avantages de BCMath Par rapport aux opérateurs et fonctions arithmétiques fournis nativement par PHP, BCMath présente principalement les avantages suivants : Une plus grande précision : les résultats des opérations de BCMath peuvent conserver des chiffres plus significatifs, ce qui est utile pour les calculs impliquant de grands nombres de scènes. Plage plus large : BCMath peut gérer des nombres plus grands que les types de données natifs de PHP, évitant ainsi les problèmes de débordement ou de perte de précision. Fonctionnalités plus riches : BCMath fournit

Comment convertir une chaîne en float en PHP Comment convertir une chaîne en float en PHP Mar 27, 2024 pm 12:48 PM

La conversion d'une chaîne en nombre à virgule flottante est une opération courante en PHP et peut être réalisée via des méthodes intégrées. Assurez-vous d’abord que la chaîne est dans un format à virgule flottante légal avant de pouvoir être convertie avec succès en nombre à virgule flottante. Ce qui suit détaillera comment convertir une chaîne en nombre à virgule flottante en PHP et fournira des exemples de code spécifiques. 1. Utiliser un cast (float) En PHP, le moyen le plus simple de convertir une chaîne en nombre à virgule flottante est d'utiliser un cast. La façon de forcer la conversion est d'ajouter (float) avant la chaîne, et PHP la convertira automatiquement

Arrondir les nombres à virgule flottante à l'aide de la fonction Math.Round en C# Arrondir les nombres à virgule flottante à l'aide de la fonction Math.Round en C# Nov 18, 2023 pm 02:17 PM

L'utilisation de la fonction Math.Round en C# pour arrondir des nombres à virgule flottante nécessite des exemples de code spécifiques. Dans le langage de programmation C#, nous devons parfois arrondir des nombres à virgule flottante. A ce stade, nous pouvons utiliser la fonction Math.Round pour réaliser cette fonction. La fonction Math.Round est une fonction intégrée en C# utilisée pour les calculs mathématiques. Sa fonction principale est d'arrondir le nombre à virgule flottante spécifié. Voici le format courant de la fonction Math.Round : Math.Round(doub

See all articles