double在内存中为8个字节存放,现在要将这8个字节取出赋给char型数组,该怎么做?如double A=10;char ch[8];接下来怎么做?
以我理解不考虑double格式,而是将double转为数组可以这么做
double A=10;
char ch[8];
char *pthis = (char *)&A;
for(int i = 0;i < 8;i++)
ch[i] = pthis[i];
或者
memcpy(ch,pthis,8);
并没有看懂你的问题是什么意思,你的搞懂double是数字类型char是字符类型,而且你不需要管double在内存中是多少个字节,这个是编译器自己处理的,你只需要声明就行了,整数也可以转换为对应的字符,对照ASSIC编码就能最多255个好像,只有对应的ASSIC码值才有对应的一个字符,你的char是字符串啊?你的意思是不是将数值对应的二进制将0\1存到char字符串中?然而意义并不大啊
VS2010是什么东西?你是问C++、C#还是VB.NET。
如果是C#,这么写:
char[] result = BitConverter.GetBytes(你的double).Select(x => (char)x).ToArray();
如果是C++,这么写:
double d;
char chs[] = (char *)&d;
直接可以通过强制转换可以么?
double 和 char 的所能存储的最大值不同,小于2的8次方减1的时候,double和char值相同,前7个字节都是0,然后依次类推,应该就是你要的效果