| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3186 人关注过本帖
标题:右移 32 位怎么没变化?
只看楼主 加入收藏
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
收藏
得分:0 
其实我的本意是GPS数据吐出来的不都是ASCII吗,都当做字符串处理
我解析到变量char card_latitude[22]={0x0};
         card_latitude 赋值 "3803.2312";
然后我有个数组char gps_info_buffer[70] = {0};
int currlen =0;
gps_info_buffer[currlenn++] = 0x7e;
gps_info_buffer[currlenn++] = 0x11;
gps_info_buffer[currlenn++] = 0x22;

int latitude = 0;
latitude = (int)(atof(card_latitude) *10e5);
    dbg_print("latitude is %d\r\n",latitude);
    sprintf((char *)(gps_info_buffer + currlen), "%x", latitude);
    currlen += 4;

我个人认为gps_info _buffer 该是 7e 11 22 02 44 53 B8 (16进制)

可是结果不对?是 7e 11 22 30  00 00 00
2014-07-02 14:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 11 楼 lqab1983
还是没看懂你的意图。那个latitude = (int) (atof(card_latitude) * 10e5);是干嘛用的?这个结果已经溢出,你自己没看过的吗?

授人以渔,不授人以鱼。
2014-07-02 18:53
快速回复:右移 32 位怎么没变化?
数据加载中...
 
   



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

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