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';
。。。
请问该怎么转换?还有就是如何反回去把字符串转换为浮点数?
------解决方案--------------------十六进制转换为浮点型
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>
参照看看,重要的还是要了解转化机制是什么。