⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_58099.htm

📁 vc
💻 HTM
字号:
<p>
序号:58099 发表者:狂战士 发表日期:2003-10-30 09:07:07
<br>主题:又碰到数据转化的问题了!!(在线等解答)
<br>内容:一串十六进制数01 10 34 00 00 00 24 00 00 00 04 00 00 00 00 00 00 00 03 00 F9<BR>它实际表示的数字是67,66,64,0,它的具体格式是这样的01为开始位,10是数据长度,34 00 00 00 24 00 00 00 04 00 00 00 00 00 00 00是具体数据,他们各占四个字节,03是结束位,00 F9是校验位.,请大侠看看它是如何转化的!!!<BR>我自己写了,可是转化有问题,我写的代码如下:<BR>unsigned char str[]={0x01,0x10,0x34,0x00,0x00,<BR>0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,<BR>0x00,0x00,0x00,0x00,0x03,0x00,0xF9};<BR>&nbsp;&nbsp;&nbsp;&nbsp; double num1=(double)(*(str+1));<BR>&nbsp;&nbsp;&nbsp;&nbsp; double num2=(double)(*(str+6));<BR>&nbsp;&nbsp;&nbsp;&nbsp; double num3=(double)(*(str+10));<BR>&nbsp;&nbsp;&nbsp;&nbsp; double num4=(double)(*(str+14));<BR>&nbsp;&nbsp;&nbsp;&nbsp; m_MSG1.Format(&#34;具体数据是:%0.2f %0.2f %0.2f %0.2f&#34;,num1,num2,num3,num4);
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-10-30 09:17:44
<br>内容:数据起始位不是应该从str+2开始吗?<BR>前面两个不分别是开始位和长度吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:走上vc的路 回复日期:2003-10-30 09:38:59
<br>内容:你应该这样写:<BR>&nbsp;&nbsp;&nbsp;&nbsp; double *data = (double*)(str+2)<BR>&nbsp;&nbsp;&nbsp;&nbsp; double num1= *data++;<BR>&nbsp;&nbsp;&nbsp;&nbsp; double num2=*data++;<BR>&nbsp;&nbsp;&nbsp;&nbsp; double num3=*data++<BR>&nbsp;&nbsp;&nbsp;&nbsp; double num4=*data++;<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR><BR><BR>你上面的写法是错误的。str是unsigned char所以你取得的是unsigned char,只有一个字节,然后去转化成double,这显然不对!<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:狂战士 回复日期:2003-10-30 10:49:09
<br>内容:To:走上vc的路<BR>按照你所说的方法,我无法得到我需要的数字, 结果为0.00 0.00<BR>To:xiongli<BR>按照你所说的方法,我得到的数字是52.00 36.00 4.00 0.00
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:米罗 回复日期:2003-10-30 11:05:03
<br>内容:用int型转化!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:狂战士 回复日期:2003-10-30 11:09:05
<br>内容:TO:米罗<BR>好象还是不行啊!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:米罗 回复日期:2003-10-30 11:26:47
<br>内容:我这没c++,所以我不能调。<BR>double型的是8个字节,所以得的数是不对的,int是4个字节,应该是没错。<BR><BR>int *data = (int*)(str+2)<BR>double num1= *data++;<BR>double num2=*data++;<BR>double num3=*data++<BR>double num4=*data++;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:米罗 回复日期:2003-10-30 11:32:03
<br>内容:结果应该是52.00 36.00 4.00 0.00 
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:狂战士 回复日期:2003-10-30 11:40:37
<br>内容:可是得到的结果应该是67,66,64,0
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:苗秦 回复日期:2003-10-30 12:33:41
<br>内容:这是一种低位在前高位在后的存储方式<BR>如下可得到数据:<BR>CString str;<BR> unsigned char str1[]={0x01,0x10,0x34,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,<BR>0x00,0x00,0x00,0x00,0x03,0x00,0xF9};<BR>&nbsp;&nbsp;&nbsp;&nbsp;unsigned char a,b,c;<BR>&nbsp;&nbsp; for(int i=2;i&lt;14;i++)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;c=str1[i];<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;a=c&lt;&lt;4;<BR>&nbsp;&nbsp;&nbsp;&nbsp;b=c&gt;&gt;4;<BR>&nbsp;&nbsp; str1[i]=a |b;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; int *data = (int*)(str1+2);<BR>&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;num1= *data++;<BR>&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;num2=*data++;<BR>&nbsp;&nbsp;&nbsp;&nbsp; int num3=*data++;<BR>&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;num4=*data++;<BR>&nbsp;&nbsp;&nbsp;&nbsp; str.Format(&#34;%d,%d,%d,%d&#34;,num1,num2,num3,num4);<BR>&nbsp;&nbsp;&nbsp;&nbsp; MessageBox(str);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:苗秦 回复日期:2003-10-30 12:36:13
<br>内容:得到的结果如下图所示
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:苗秦 回复日期:2003-10-30 12:37:40
<br>内容:得到的结果如下图所示 
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -