标题:请问各位高手:double 型数据怎么放到short型数组中
只看楼主
yufengkun
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-7-17
结帖率:0
已结贴  问题点数:20 回复次数:6 
请问各位高手:double 型数据怎么放到short型数组中
请问各位高手:double 型数据怎么放到short型数组中
搜索更多相关主题的帖子: double short 数据 
2009-07-18 11:17
kingzhengshu
Rank: 1
等 级:新手上路
帖 子:7
专家分:7
注 册:2009-5-29
得分:6 
强制类型转换,short 是整型吧?只有int转换啦。。。。
2009-07-18 16:26
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
得分:6 
short v[8];
double f;
memcpy_s( (void*)(&v[0]) , sizeof(v) , (void*)&f , sizeof(f));//放入
f = *((double*)(&v[0]));//取出

[[it] 本帖最后由 debroa723 于 2009-7-19 02:35 编辑 [/it]]
2009-07-19 02:34
yufengkun
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-7-17
得分:0 
非常感谢版主!
2009-07-19 09:45
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:6 
以下是引用debroa723在2009-7-19 02:34的发言:

short v[8];
double f;
memcpy_s( (void*)(&v[0]) , sizeof(v) , (void*)&f , sizeof(f));//放入
f = *((double*)(&v[0]));//取出


short v[4]; 就够了吧?

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009-07-19 23:14
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
memcpy
memcpy_s 在VC6中不能用,只能用 memcpy


#include "stdafx.h"
#include <string.h>

int main(int argc, char* argv[])
{

    short v[8];
    double f = 3.134;
    memcpy( (void*)(&v[0]) , (void*)&f , sizeof(f));//放入
    f = *((double*)(&v[0]));//取出

    printf("Hello World %f!\n",f);
    return 0;
}

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009-07-19 23:29
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
得分:0 
以下是引用vfdff在2009-7-19 23:14的发言:



short v[4]; 就够了吧?

一般地情况下,是够了。如果使用FPU,128位还是必要的。
而且保不准明年就见128位操作系统了。

另外:建议在最新的编译平台上去工作,有许多新的规范,比如memcpy与memcpy_s,前者是已经禁用的API,在新的编译平台上会报警告,这其实不光是个警告,是个错误,如果希望给黑客留下可能的后门,就去使用那些已经禁用的API,否则还是使用新的规范吧。可以百度一下,关键字:C/C++  禁用的API
2009-07-25 01:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-279749-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.108056 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved