`
xgene
  • 浏览: 27802 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

float与byte数组的相互转换,d lang V1

阅读更多
import tango.io.Stdout;

void ConvertFloatToBytes(float Value,inout  byte[] Bytes)
{
	uint ByteVal1, ByteVal2, ByteVal3, ByteVal4; 
	asm
	{
		mov EAX, Value;
		and EAX, 0xFF000000;
		shr EAX, 24;
		mov ByteVal1, EAX;
		mov EAX, Value;
		and EAX, 0x00FF0000;
		shr EAX, 16;
		mov ByteVal2, EAX;
		mov EAX, Value;
		and EAX, 0x0000FF00;
		shr EAX, 8;
		mov ByteVal3, EAX;
		mov EAX, Value;
		and EAX, 0x000000FF;
		mov ByteVal4, EAX;
	}
	Bytes[0] = cast(byte)ByteVal1;
	Bytes[1] = cast(byte)ByteVal2;
	Bytes[2] = cast(byte)ByteVal3;
	Bytes[3] = cast(byte)ByteVal4;
}

float  ConvertBytesToFloat(byte Bytes[4])
{
	float retfloat = 0.0;
	uint ByteVal1, ByteVal2, ByteVal3, ByteVal4;
	ByteVal1 = cast(uint)Bytes[0];
	ByteVal2 = cast(uint)Bytes[1];
	ByteVal3 = cast(uint)Bytes[2];
	ByteVal4 = cast(uint)Bytes[3];
	asm
	{
		mov EAX, ByteVal1;
		shl EAX, 24;
		mov retfloat, EAX;
		mov EAX, ByteVal2;
		shl EAX, 16;
		or EAX, retfloat;
		mov retfloat, EAX;
		mov EAX, ByteVal3;
		shl EAX, 8;
		or EAX, retfloat;
		mov retfloat, EAX;
		mov EAX, ByteVal4;
		or EAX, retfloat;
		mov retfloat, EAX;
	}
	return retfloat;
}

void main () {
	byte[] bb;
	bb.length=4;
	ConvertFloatToBytes(3.5,bb);
	
	for(int i=0;i<bb.length;i++)
	{
		Stdout(bb[i]).newline;
	}
	//结果和VB.net转换后顺序相反
	
	Stdout(ConvertBytesToFloat([64,96,0,0])).newline;
}
分享到:
评论

相关推荐

    float转byte数组测试小工具

    将float转换为byte数组的过程如下: 1. 首先,我们需要获取float的原始二进制表示。这通常通过位运算或内置的编译器函数(如Java的Float.floatToRawIntBits())完成。 2. 一旦我们有了二进制表示,我们可以按顺序...

    Java数值类型与byte数组相互转换

    Java bytes数组与基本类型的相互转换 Int -&gt; Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -&gt; Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...

    java基本类型与byte数组互相转换.pdf

    Java 基本类型与 byte 数组互相转换 Java 中的基本类型与 byte 数组之间的转换是非常重要的,以下是关于 Java 基本类型与 byte 数组互相转换的相关知识点: 1. short 类型转换成 byte 数组 在 Java 中,short ...

    C# Byte数组转Int32 Short Float(浮点数)

    标题和描述提到的“C# Byte数组转Int32 Short Float(浮点数)”是指将字节数组中的数据转换为整型(Int32)、短整型(Short)以及浮点数(Float)的过程。以下是对这个主题的详细解释: **字节数组基础** 字节数组...

    java基本类型与byte数组互相转换.doc

    "java基本类型与byte数组互相转换" Java基本类型是指Java语言中最基本的数据类型,包括byte、short、int、long、float、double、char、boolean等。这些基本类型在内存中以二进制形式存储,而byte数组是Java中的一种...

    java基本类型与byte数组互相转换文.pdf

    这些基本类型可以相互转换,例如将 short 类型转换成 byte 数组、int 类型转换成 byte 数组等。 在 Java 中,基本类型可以使用 bitwise 运算符来实现与 byte 数组的转换。例如,将 short 类型转换成 byte 数组可以...

    byte数组转化为hex

    总结来说,Java中字节数组与16进制字符串之间的转换涉及到位运算、字符映射以及字符串处理。了解这些概念对于处理二进制数据至关重要,特别是在网络编程、文件读写和数据序列化等场景中。希望以上内容能帮助你更好地...

    java基本类型与byte数组互相转换

    在Java编程语言中,基本类型的变量(如`short`、`int`、`long`、`char`、`double`和`float`)和`byte`数组之间的相互转换是一项非常实用的技术,尤其是在网络通信、文件读写等场景下。下面将详细介绍如何进行这些...

    Float与Byte互转工具

    Float与Byte互转工具,简单,好用 https://blog.csdn.net/kangweijian/article/details/79706672

    java实现的字节数组转换成基本类型,基本类型转换成byte[]

    char short int long float double 转换成byte数组

    4BYTE转换成float型代码

    标题"4BYTE转换成float型代码"指的是将4个字节的数据转换为浮点数(float)的程序代码。在C++或Visual C++(vc)环境中,这通常涉及到低级别内存操作和类型转换。以下是转换过程中涉及的关键知识点: 1. **字节序**...

    java基本类型与byte数组互相转换.rar

    然而,在某些场景下,我们可能需要将这些基本类型的数据转换为字节数组(byte[]),或者从字节数组中恢复这些基本类型的数据。这在处理网络传输、文件存储或序列化时尤其常见。 转换的基本过程可以分为两个主要步骤...

    Float和Bytes互转小工具

    自己写的float和bytes互相转换的小工具.希望能有帮助.

    byte转float值

    java写的byte转float值IEEE标准

    Java基本类型与byte数组之间相互转换方法

    有时在处理数据时,我们需要将这些基本类型与字节数组(byte arrays)进行转换,特别是在网络通信、文件存储或序列化等场景中。下面我们将详细介绍如何在Java中进行这种转换。 首先,我们要理解字节在计算机内存中...

    在C#中将任意数值类型数据与字节数组相互转换的一个方法及源代码

    using System.IO; …… float f1 = 1.1F MemoryStream s = new MemoryStream(); BinaryWriter w=new BinaryWriter(s );

    java对象转成byte数组的3种方法

    java 对象转换为 byte 数组的 3 种方法 在 Java 中,将对象转换为 byte 数组是一种常见的操作,特别是在使用 Netty 进行通信协议传输的场景中。那么,如何方便地将一个 Java 对象构造成一个 byte 数组呢? 方法 1...

    unity AudioClip各种转换 Byte float

    unity AudioClip各种转换 Byte[] float[] , 方便上传服务器,下载播放

    字节和float转换小工具

    标题中的"字节和float转换小工具"是一个专门针对字节与浮点数(float)之间转换的实用程序。这个小工具设计的目标是帮助开发者高效地在字节序列和浮点数之间进行切换,这在数据传输、存储或解析二进制文件时非常有用...

Global site tag (gtag.js) - Google Analytics