`
xgene
  • 浏览: 28065 次
  • 性别: 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数组

    Float和Bytes互转小工具

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

    4BYTE转换成float型代码

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

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

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

    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[] , 方便上传服务器,下载播放

    LongInt Float Double与字节数组的转换.rar

    在给定的压缩包文件中,重点讲述了`LongInt`、`Float`和`Double`这三种数值类型与字节数组之间的转换。这里我们将详细讨论这些转换的过程以及其在实际应用中的意义。 首先,`LongInt`是表示32位整数的数据类型,...

Global site tag (gtag.js) - Google Analytics