搜索
bottom↓
回复: 39

求助:关于KEIL中int型的取值范围是多少?(已解决)

[复制链接]

出0入0汤圆

发表于 2014-6-29 15:11:26 | 显示全部楼层 |阅读模式
本帖最后由 wangpengcheng 于 2014-6-29 16:23 编辑

我目前遇到的问题是:在MQX中,读取文件的时候,用_mqx_int _io_fseek( MQX_FILE_PTR file_ptr,  _file_offset  offset,   _mqx_uint  mode)函数来定位,但是我看了一下MQX中 _file_offset 的定义是int型的,我的理解是从-65535到+65535,所以当我文件超过64K的时候,问题就来了,我写不进去了,因为offset变成负数了!

看看哪位高手对此有什么见解?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2014-6-29 15:29:51 | 显示全部楼层
keil 中 int 占两个字节,范围-32768  +32767, unsigned int 0-65535。  用long型,占用4个字节  ,范围:-2147483648  +2147483647

出0入0汤圆

 楼主| 发表于 2014-6-29 15:56:29 | 显示全部楼层
zhw950 发表于 2014-6-29 15:29
keil 中 int 占两个字节,范围-32768  +32767, unsigned int 0-65535。  用long型,占用4个字节  ,范围:- ...

刚才跟了一下,好像问题不在这里,我写100000进去也没有问题啊!还得再看看!

出0入0汤圆

发表于 2014-6-29 16:07:34 | 显示全部楼层
wangpengcheng 发表于 2014-6-29 15:56
刚才跟了一下,好像问题不在这里,我写100000进去也没有问题啊!还得再看看! ...

一般8位、16位单片机的int位16位。32位机的int位32位。

出0入0汤圆

 楼主| 发表于 2014-6-29 16:23:27 | 显示全部楼层
lcofjp 发表于 2014-6-29 16:07
一般8位、16位单片机的int位16位。32位机的int位32位。

是的,问题不在范围上,在MSD中,我刚才跟踪了一下,发现MSD在拷文件的时候不定时就跳到文件开始的位置重新拷贝,郁闷!此帖结帖了!谢谢!

出0入0汤圆

发表于 2014-6-29 20:42:22 | 显示全部楼层
开始玩mqx了,期待分享

出0入0汤圆

发表于 2014-7-3 12:28:51 | 显示全部楼层
用  sizeof 可以判断int吧~

出0入0汤圆

发表于 2014-9-3 11:23:06 | 显示全部楼层
过来学习的,int一般最高位要占用一位的吧。

出0入0汤圆

 楼主| 发表于 2014-9-3 11:23:57 | 显示全部楼层
songjie 发表于 2014-7-3 12:28
用  sizeof 可以判断int吧~

sizeof只能判断它占用多少个byte空间!

出0入0汤圆

 楼主| 发表于 2014-9-3 11:24:19 | 显示全部楼层
jiang887786 发表于 2014-9-3 11:23
过来学习的,int一般最高位要占用一位的吧。

是的,只是最高位被作为正负号用!

出0入0汤圆

发表于 2014-9-3 11:27:55 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 11:24
是的,只是最高位被作为正负号用!

有符号数在C语言里不是用的补码的形式?

出0入0汤圆

 楼主| 发表于 2014-9-3 11:29:16 | 显示全部楼层
浪里白条 发表于 2014-9-3 11:27
有符号数在C语言里不是用的补码的形式?

好像是!记忆模糊!

出0入0汤圆

发表于 2014-9-3 11:30:22 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 11:29
好像是!记忆模糊!

如果是补码的话,就不是以最高位做符号位了。

出0入0汤圆

 楼主| 发表于 2014-9-3 11:32:42 | 显示全部楼层
浪里白条 发表于 2014-9-3 11:30
如果是补码的话,就不是以最高位做符号位了。

解释一下!      

出0入0汤圆

发表于 2014-9-3 12:05:30 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 11:23
sizeof只能判断它占用多少个byte空间!

多少字节 不就判断出了  取值的 范围啊~~~!!!~

出0入0汤圆

 楼主| 发表于 2014-9-3 12:06:23 | 显示全部楼层
songjie 发表于 2014-9-3 12:05
多少字节 不就判断出了  取值的 范围啊~~~!!!~

呵呵,坑在这儿呢,脑子笨,没转过来!

出0入0汤圆

发表于 2014-9-3 12:08:43 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 12:06
呵呵,坑在这儿呢,脑子笨,没转过来!

2字节  是16位  2的16次方啊
4字节  是32位  2的32次方啊

没有问题吧~~~

出0入0汤圆

发表于 2014-9-3 12:08:55 | 显示全部楼层

哈,这个我也忘了,百度了一下
http://baike.baidu.com/view/377340.htm?fr=aladdin

出0入0汤圆

 楼主| 发表于 2014-9-3 12:11:01 | 显示全部楼层
songjie 发表于 2014-9-3 12:08
2字节  是16位  2的16次方啊
4字节  是32位  2的32次方啊

有问题,我说的是int型,不是uint形

出0入0汤圆

 楼主| 发表于 2014-9-3 12:12:20 | 显示全部楼层
浪里白条 发表于 2014-9-3 12:08
哈,这个我也忘了,百度了一下
http://baike.baidu.com/view/377340.htm?fr=aladdin

看了,不是补码,只是最高位是正负号!

出0入0汤圆

发表于 2014-9-3 12:13:05 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 12:12
看了,不是补码,只是最高位是正负号!

原来如此,学习了。

出0入0汤圆

发表于 2014-9-3 12:14:12 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 12:11
有问题,我说的是int型,不是uint形

对啊~~~int啊    -2的16次方/2  ~ + 2的16次方/2(加1还是减1)

uint是 无符号 int型啊~~~  0 ~ 2的16次方

没问题吧~

出0入0汤圆

 楼主| 发表于 2014-9-3 12:15:18 | 显示全部楼层
songjie 发表于 2014-9-3 12:14
对啊~~~int啊    -2的16次方/2  ~ + 2的16次方/2(加1还是减1)

uint是 无符号 int型啊~~~  0 ~ 2的16 ...

没问题,你厉害!

出0入0汤圆

发表于 2014-9-3 12:20:03 | 显示全部楼层
songjie 发表于 2014-9-3 12:14
对啊~~~int啊    -2的16次方/2  ~ + 2的16次方/2(加1还是减1)

uint是 无符号 int型啊~~~  0 ~ 2的16 ...

32位系统中也是2的16次方?

出0入0汤圆

发表于 2014-9-3 12:21:19 | 显示全部楼层
浪里白条 发表于 2014-9-3 12:20
32位系统中也是2的16次方?

我是打比方~~~的  
32位的  就是2的32次方~~

出0入0汤圆

发表于 2014-9-3 12:21:52 | 显示全部楼层
浪里白条 发表于 2014-9-3 12:20
32位系统中也是2的16次方?

看17 楼吧~~~~

我的另外一个回复~

出0入0汤圆

发表于 2014-9-3 12:22:33 | 显示全部楼层

没问题吧~~~ 别吓我,要不然我害怕~

出0入0汤圆

发表于 2014-9-3 12:22:54 | 显示全部楼层
songjie 发表于 2014-9-3 12:21
看17 楼吧~~~~

我的另外一个回复~

看了,懂了。

出0入0汤圆

发表于 2014-9-3 12:26:38 | 显示全部楼层

您的飞币多的只能显示 1万 了~~

出0入0汤圆

发表于 2014-9-3 12:27:04 | 显示全部楼层
c语言书上就有讲的  

出0入0汤圆

发表于 2014-9-3 12:27:39 | 显示全部楼层
songjie 发表于 2014-9-3 12:26
您的飞币多的只能显示 1万 了~~

飞币1W封顶,正好等您呢。

出0入0汤圆

 楼主| 发表于 2014-9-3 12:29:49 | 显示全部楼层
浪里白条 发表于 2014-9-3 12:27
飞币1W封顶,正好等您呢。

小白,你又调皮了!

出0入0汤圆

 楼主| 发表于 2014-9-3 12:30:32 | 显示全部楼层
xlxbangel 发表于 2014-9-3 12:27
c语言书上就有讲的

唉,人老了,脑子记不住了!

出0入0汤圆

发表于 2014-9-3 12:31:12 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 12:30
唉,人老了,脑子记不住了!

看来我还不够老啊  

出0入0汤圆

 楼主| 发表于 2014-9-3 12:32:51 | 显示全部楼层
xlxbangel 发表于 2014-9-3 12:31
看来我还不够老啊

要不要拔苗助长啊!

出0入0汤圆

发表于 2014-9-3 12:34:03 | 显示全部楼层
wangpengcheng 发表于 2014-9-3 12:32
要不要拔苗助长啊!

额。。。这个就算了  

出0入0汤圆

 楼主| 发表于 2014-9-3 12:35:00 | 显示全部楼层
xlxbangel 发表于 2014-9-3 12:34
额。。。这个就算了

出0入0汤圆

发表于 2014-9-3 12:37:33 | 显示全部楼层
,这贴成了 对话框了~~~

出0入0汤圆

 楼主| 发表于 2014-9-3 12:40:48 | 显示全部楼层
songjie 发表于 2014-9-3 12:37
,这贴成了 对话框了~~~

QQ群

出0入0汤圆

发表于 2014-9-3 13:17:33 | 显示全部楼层
MQX还没看过 顶顶
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-15 15:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表