Rumah hujung hadapan web tutorial js javaScript实现浮点数转十六进制字符_javascript技巧

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

May 16, 2016 pm 05:18 PM
perenambelasan nombor titik terapung

最近一个嵌入式项目中需要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);
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menukar rentetan kepada perpuluhan dalam php Bagaimana untuk menukar rentetan kepada perpuluhan dalam php Mar 22, 2023 pm 03:22 PM

PHP ialah bahasa pengaturcaraan yang berkuasa yang digunakan secara meluas dalam dunia pembangunan web. Salah satu situasi yang sangat biasa ialah keperluan untuk menukar rentetan kepada perpuluhan. Ini sangat berguna apabila melakukan pemprosesan data. Dalam artikel ini, kami akan menerangkan cara menukar rentetan kepada perpuluhan dalam PHP.

Kaedah pembundaran nombor titik terapung PHP Kaedah pembundaran nombor titik terapung PHP Mar 21, 2024 am 09:21 AM

Artikel ini akan menerangkan secara terperinci kaedah pembundaran nombor titik terapung PHP Editor berpendapat ia sangat praktikal, jadi saya kongsikan dengan anda sebagai rujukan saya harap anda dapat memperoleh sesuatu selepas membaca artikel ini. PHP Gambaran Keseluruhan Pembundaran Titik Terapung Nombor titik terapung diwakili dalam komputer sebagai titik perpuluhan diikuti oleh eksponen, namun, ia sering disimpan dalam anggaran dengan bilangan digit yang terhad. Apabila anda perlu membundarkan nombor titik terapung kepada ketepatan tertentu, terdapat beberapa cara untuk melakukannya. Kaedah 1. fungsi bulat() Fungsi bulat() membundarkan nombor titik terapung kepada integer terdekat. Ia menerima nombor titik terapung dan parameter ketepatan pilihan. Contohnya: $num=1.55;echoround($num);//Output: 2echoround($num,1)

Tukar nombor titik terapung kepada rentetan menggunakan fungsi strconv.FormatFloat Tukar nombor titik terapung kepada rentetan menggunakan fungsi strconv.FormatFloat Jul 25, 2023 am 11:45 AM

Gunakan fungsi strconv.FormatFloat untuk menukar nombor titik terapung kepada rentetan Dalam bahasa Go, kita selalunya perlu menukar nombor titik terapung kepada jenis rentetan untuk keperluan output atau storan. Pakej strconv disediakan dalam bahasa Go, dan fungsi FormatFloat di dalamnya boleh menukar nombor titik terapung kepada jenis rentetan. Fungsi FormatFloat mengambil tiga parameter: f mewakili nombor titik terapung yang hendak ditukar, fmt mewakili format dan prec mewakili bilangan tempat perpuluhan untuk dikekalkan. Antaranya, parameter f

Punca dan strategi mengelakkan ralat pengiraan titik terapung PHP Punca dan strategi mengelakkan ralat pengiraan titik terapung PHP Feb 27, 2024 pm 06:33 PM

Sebagai bahasa skrip sebelah pelayan yang popular, PHP sering menghadapi masalah kehilangan ketepatan atau ralat pengiraan apabila melakukan pengiraan titik terapung Masalah ini boleh menjejaskan ketepatan dan kestabilan program. Artikel ini akan meneroka punca ralat pengiraan titik terapung PHP, mencadangkan beberapa strategi pengelakan dan memberikan contoh kod khusus untuk rujukan. 1. Sebab ralat pengiraan titik terapung PHP Dalam komputer, nombor titik terapung diwakili dalam bentuk binari, dan binari tidak boleh mewakili semua perpuluhan perpuluhan dengan tepat, yang membawa kepada ketidaktepatan nombor titik terapung.

Bagaimana untuk menukar binari kepada perenambelasan menggunakan bahasa C? Bagaimana untuk menukar binari kepada perenambelasan menggunakan bahasa C? Sep 01, 2023 pm 06:57 PM

Nombor binari diwakili oleh 1s dan 0s. Sistem nombor perenambelasan 16-bit ialah {0,1,2,3…..9,A(10),B(11),…F(15)} untuk menukar daripada perwakilan binari kepada perenambelasan Mewakili bahawa bit ID rentetan dikumpulkan ke dalam ketulan 4-bit, dipanggil nibbles bermula dari bahagian yang paling tidak ketara. Setiap blok digantikan dengan nombor heksadesimal yang sepadan. Mari kita lihat contoh untuk mendapatkan pemahaman yang jelas tentang perwakilan nombor heksadesimal dan perduaan. 001111100101101100011101 3 E 5 B&nb

Penjelasan mendalam tentang PHP BCMath: Melepaskan potensi operasi nombor Penjelasan mendalam tentang PHP BCMath: Melepaskan potensi operasi nombor Feb 23, 2024 am 09:10 AM

:1. Pengenalan kepada BCMath BCMath ialah perpustakaan sambungan terbina dalam PHP, yang digunakan khas untuk mengendalikan operasi nombor integer dan titik terapung yang besar. Ia menyediakan pelbagai fungsi untuk melaksanakan pelbagai operasi matematik seperti penambahan, penolakan, pendaraban, pembahagian, kuasa dua dan punca kuasa dua, dan menyokong perwakilan digital dalam berbilang asas. 2. Kelebihan BCMath Berbanding dengan pengendali aritmetik dan fungsi yang disediakan secara asli oleh PHP, BCMath terutamanya mempunyai kelebihan berikut: Ketepatan yang lebih tinggi: Keputusan operasi BCMath boleh mengekalkan digit yang lebih ketara, yang berguna untuk pengiraan yang melibatkan adegan yang besar. Julat yang lebih luas: BCMath boleh mengendalikan nombor yang lebih besar daripada jenis data asli PHP, dengan itu mengelakkan limpahan atau kehilangan isu ketepatan. Ciri yang lebih kaya: BCMath menyediakan

Bagaimana untuk menukar rentetan kepada terapung dalam PHP Bagaimana untuk menukar rentetan kepada terapung dalam PHP Mar 27, 2024 pm 12:48 PM

Menukar rentetan kepada nombor titik terapung ialah operasi biasa dalam PHP dan boleh dicapai melalui kaedah terbina dalam. Mula-mula pastikan rentetan itu berada dalam format titik terapung yang sah sebelum ia berjaya ditukar kepada nombor titik terapung. Berikut akan terperinci cara menukar rentetan kepada nombor titik terapung dalam PHP dan memberikan contoh kod khusus. 1. Gunakan (float) cast Dalam PHP, cara paling mudah untuk menukar rentetan kepada nombor titik terapung adalah dengan menggunakan cast. Cara untuk memaksa penukaran adalah dengan menambah (terapung) sebelum rentetan, dan PHP akan menukarnya secara automatik

Nombor titik terapung bulat menggunakan fungsi Math.Round dalam C# Nombor titik terapung bulat menggunakan fungsi Math.Round dalam C# Nov 18, 2023 pm 02:17 PM

Menggunakan fungsi Math.Round dalam C# untuk membundarkan nombor titik terapung memerlukan contoh kod khusus Dalam bahasa pengaturcaraan C#, kadangkala kita perlu membundarkan nombor titik terapung. Pada masa ini, kita boleh menggunakan fungsi Math.Round untuk mencapai fungsi ini. Fungsi Math.Round ialah fungsi terbina dalam C# yang digunakan untuk pengiraan matematik Fungsi utamanya ialah untuk membundarkan nombor titik terapung yang ditentukan. Berikut ialah format biasa bagi fungsi Math.Round: Math.Round(doub

See all articles