日期:2014-05-17  浏览次数:21643 次

js如何把浮点数转换为四字节16进制字符串?
如题,如何在javascript中把浮点数转换为4个16进制的字符串,比如说:
123.456(float) = '79 E9 F6 42';
123.456(double) = '77 BE 9F 1A 2F DD 5E 40';
123(int) = '7B 00 00 00';
。。。
请问该怎么转换?还有就是如何反回去把字符串转换为浮点数?
JavaScript 浮点数 IEEE 16进制

------解决方案--------------------
十六进制转换为浮点型

string shuju = this.textBox1.Text.Trim();
uint num = uint.Parse(shuju, System.Globalization.NumberStyles.AllowHexSpecifier);
byte[] floatValues = BitConverter.GetBytes(num);
float f = BitConverter.ToSingle(floatValues, 0);
this.label1.Text = Convert.ToDecimal(f) + "";


浮点型转换为十六进制
float f = Convert.ToSingle(textBox1.Text);
byte[] bytes = BitConverter.GetBytes(f);//把浮点型转换为字节类型
Array.Reverse(bytes);//反转一维数组中某部分元素的顺序
label1.Text = BitConverter.ToString(bytes).Replace("-", ""); 
------解决方案--------------------
换个角度想问题不行吗,为什么一定非得用js转化!
------解决方案--------------------
不过你要是理解进制之间的转化规律,其实也不难。找下这方面的资料看看吧!
------解决方案--------------------

(1)==============
parseInt(Math.random()*上限+1)  上限 为10 就是 1----10之间随机数
(2)==============
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)

对于js的进制转换的一些方法分析
-
-
var a='11160'; 
alert(parseInt(a,2)); //将111做为2进制来转换,忽略60(不符合二进制),从左至右只将符合二进制数的进行转换 
alert(parseInt(a,16)); //将所有的都进行转换 
依照此方法,其实可以转换成任何进制 
var a='1110'; 
alert(parseInt(a,10).toString(16)); //将A转换为10进制,然后再转换成16进制 同样也可以是其它进制 
下面说下ASCII 码: 
function test(){ 
var a='ab'; 
var c=a.charCodeAt(1);//返回98 也就是b的AscII码 位置从0开始 

var char=String.fromCharCode(98);返回小写的b 

//小例子 
function test(){ //输出AscII码扩展集中的字符 
var c=""; 
for(var i=1;i<65536;i++){ 
if((i%10)==0){ 
c+=i+':\t'+String.fromCharCode(i)+'\t'+'\n';}else{ 
c+=i+':\t'+String.fromCharCode(i)+'\t';} 

document.getElementById("abc").innerText=c; 

<div id='abc'></div> 


参照看看,重要的还是要了解转化机制是什么。