vc++中如何将一个double类型的数据转换成四个字节长度的字节数组

intread;byteblock=0x34;byte[]sdata=newbyte[4];byte[]sdata1=BitConverter.GetBytes(mone... int read;
byte block = 0x34;
byte[] sdata = new byte[4];
byte[] sdata1 = BitConverter.GetBytes(money * 10);
int i;
for (i = 0; i < 4; i++)
{
sdata[3 - i] = sdata1[i];
}
read = ZT_rf_m1_Increment(icdev, block, sdata);
if (read == 0)
{
return true;
}
else return false;
上面的代码是C#的,block是验证的卡的块号, byte[] sdata1 = BitConverter.GetBytes(money * 10);该语句将double型的money转换成四个字节并存放在字节数组byte[]数组sdata1中。
我想问在vc++中怎么样将一个double型或者float的数据转换成类似c#中Int32的效果,转成成四个字节存在在字节数组中,就像上面的语句实现的功能。
我要对一个卡的进行钱包充值操作,该数值在卡中占用四个字节的长度。还请各位多多指教!!!
展开
 我来答
bhtzu
2015-04-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4238万
展开全部

在C/C++中,直接进行内存拷贝就可以了:

BYTE s[8];
memcpy(s,money,sizeof(double));
int intMoney = (int)(money*10);
memmove(s,intMoney,sizeof(int));

需要注意的是根据使用逻辑,如果需要字节逆序(这个很奇怪,因为通常是int类型需要)还是要做之后那个循环。另外就是数据类型了,double是8字节的格式存储,int是4字节逆序存储。

cheers100
2015-10-08 · TA获得超过301个赞
知道小有建树答主
回答量:489
采纳率:0%
帮助的人:167万
展开全部
你的问题有误。

FLOAT才是四个字节。

DOUBLE 是八个字节。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式