keil如何处理48位数据啊

shizhiyong001 2011-03-29 11:36:17
unsigned long int freq1 = 0,freq2=0;
freq1= (unsigned long int)((unsigned long int)(938249.9*Freqency)&0xffffffff);
freq2= (unsigned long int)(((unsigned long int)(938249.9*Freqency)>>32)&0xffffffff);

其中Freqency达到30 000 000HZ 所有(938249.9*Freqency)这个数已经是48位数据了 keil下怎么处理啊
...全文
152 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxing7851 2011-03-29
  • 打赏
  • 举报
回复
你这样处理是正确的,没错,分成2个就对了,其中的运算,你就不要去管了,C会帮你搞定的。
Ejack79 2011-03-29
  • 打赏
  • 举报
回复
你稍微思考一下:这个数值需要在运行时计算得出吗?
bjtea 2011-03-29
  • 打赏
  • 举报
回复
我教你一招:分子和分母同除以2^16=65536。变成:(14.31656*Freqency)>>16, 乘积只有32位了。
winlson1988 2011-03-29
  • 打赏
  • 举报
回复
难道不能优化了吗?Freqency是变量还是常量? 如果实在不能优化了,用浮点型吧。单精度浮点型的范围是-3.4*10^-38~3.4*10^38够你用了吧?
shizhiyong001 2011-03-29
  • 打赏
  • 举报
回复
如果Freqency=30 000 000 那么938249.9*Freqency就48位了unsigned long int表示32位 所有不行吧 unsigned long long是64位 keil不支持啊 怎么解决呢
Keil C51使用详解 第一节 系统概述... 6 第二节 Keil C51单片机软件开发系统的整体结构... 6 第三节 Keil C51工具包的安装... 7 1. C51 for Dos 7 2. C51 for Windows的安装及注意事项:... 7 第四节 Keil C51工具包各部分功能及使用简介... 7 1. C51与A51. 7 2. L51和BL51. 8 3. DScope51,Tscope51及Monitor51. 8 4. Ishell及uVision. 9 第二章 Keil C51软件使用详解... 10 第一节 Keil C51编译器的控制指令... 10 1. 源文件控制类... 10 2. 目标文件(Object)控制类:... 10 3. 列表文件(listing)控制类:... 10 第二节 dScope51的使用... 11 1. dScope51 for Dos 11 2. dScope for Windows 12 第三节 Monitor51及其使用... 13 1. Monitor51对硬件的要求... 13 2. Mon51的使用... 13 3. MON51的配置... 13 4. 串口连接图:... 13 5. MON51命令及使用... 14 第四节 集成开发环境(IDE)的使用... 14 1. Ishell for Dos的使用... 14 2. uVision for windows的使用... 15 第三章 Keil C51 vs 标准C.. 15 第一节 Keil C51扩展关键字... 15 第二节 内存区域(Memory Areas):... 16 1. Pragram Area:... 16 2. Internal Data Memory: 16 3. External Data Memory. 16 4. Speciac Function Register Memory. 16 第三节 存储模式... 16 1. Small模式... 16 2. Compact模式... 17 3. large模式... 17 第四节 存储类型声明... 17 第五节 变量或数据类型... 17 第六节 位变量与声明... 17 1. bit型变量... 17 2. 可位寻址区说明20H-2FH.. 18 第七节 Keil C51指针... 18 1. 一般指针... 18 2. 存储器指针... 18 3. 指针转换... 18 第八节 Keil C51函数... 19 1. 中断函数声明:... 19 2. 通用存储工作区... 19 3. 选通用存储工作区由using x声明,见上例。... 19 4. 指定存储模式... 19 5. #pragma disable. 19 6. 递归或可重入函数指定... 19 7. 指定PL/M-51函数... 20 第四章 Keil C51高级编程... 20 第一节 绝对地址访问... 20 1. 绝对宏:... 20 2. _at_关键字... 21 3. 连接定位控制... 21 第二节 Keil C51与汇编的接口... 21 1. 模块内接口... 21 2. 模块间接口... 21 第三节 Keil C51软件包中的通用文件... 22 1. 动态内存分配... 22 2. C51启动文件STARTUP.A51. 22 3. 标准输入输出文件... 25 4. 其它文件... 25 第四节 段名协定与程序优化... 25 1. 段名协定(Segment Naming Conventions) 25 2. 程序优化... 25 第五章 Keil C51库函数参考... 26 第一节 本征库函数(intrinsic routines)和非本征证库函数... 26 第二节 几类重要库函数... 26 1. 专用寄存器include文件... 26 2. 绝对地址include文件absacc.h. 26 3. 动态内存分配函数,位于stdlib.h中... 27 4. 缓冲区处理函数位于“string.h”中... 27 5. 输入输出流函数,位于“stdio.h”中... 27 第三节 Keil C51库函数原型列表... 27 1. CTYPE.H.. 27 2. INTRINS.H.. 27 3. STDIO.H.. 28 4. STDLIB.H.. 28 5. STRING.H.. 28 第六章 Keil C51例子:Hello.c.. 29 第一节 uVision for Windows的使用步骤... 29 第二节 Ishell for Dos使用步骤... 30 第七章 Keil C51的代码效率... 30 第一节 存储模式的影响... 30 第二节 程序结构的影响... 31 第八章 dScope for Windows使用详解... 32 第一节 概述... 32 1. 主窗口(Mainframe Window)... 32 2. 调试窗口(DEBUG Window)... 32 3. 命令窗口(Command Window)... 32 4. 观察窗口(Watch Window)... 32 5. 寄存器窗口(Registe Window)... 32 6. 串口窗口(Serical Windows)... 32 7. 性能分析窗口... 32 8. 内存窗口(Memory Window)... 32 9. 符号浏览窗口(Symbol Browser Window)... 33 10. 调用线窗口(Call-Stack Window)... 33 11. 代码覆盖窗口... 33 12. 外围设备窗口(peripherals) 33 第二节 dScope for Windows基本操作... 33 1. 指定初始化文件... 33 2. 观察变量... 33 3. 显示RAM的值... 34 4. 观察堆栈... 34 5. 中断处理程序调试... 34 6. 性能分析(Performance Analyzer:PA)... 34 第三节 dScope for Windows命令文件的编制... 34 1. 地址空间及地址空间类型... 34 2. 常量... 35 3. 变量... 36 4. 运算符... 38 5. 表达式... 38 6. 数组... 38 7. 结构和联合... 38 8. 指针:... 38 9. dScope命令语句... 38 10. 函数... 43

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧