CNode

关于Buffer中readFloatBE的疑惑

问答
115757115286发布于8 年前最后回复8 年前1 回复3149 浏览0 收藏

在nodejs官网Buffer API中使用函数buf.readFloatBE(offset)的时候产生了一些困惑。困惑点是在于根据官网下面的例子,如下

	const buf = Buffer.from([1, 2, 3, 4]);
	console.log(buf.readFloatBE(0));
	// Prints: 2.387939260590663e-38
	console.log(buf.readFloatLE(0));
	// Prints: 1.539989614439558e-36

相比于buf.readFloatBE,buf.readInt32BE类似于这样的函数的计算还是比较好理解的,请问这两者之间有什么区别吗?

查看回复

回复 (1)

S
Shasharoman#1·8 年前

没看出你的疑惑在哪 = =,这两个API我没用过,但文档看起来是为了让程序员选择符合自己环境的大小端方法

4bytes的buffer:[0x00, 0x00, 0x00,0x01],用BE读出来是0x00 0x00 0x00 0x01,而用LE对读出来则是0x01 0x00 0x00 0x00,接着你不管是把它转int还是float,值都是有区别的

参与回复
登录后即可参与回复。登录