求助:关于KEIL中int型的取值范围是多少?(已解决)
本帖最后由 wangpengcheng 于 2014-6-29 16:23 编辑我目前遇到的问题是:在MQX中,读取文件的时候,用_mqx_int _io_fseek( MQX_FILE_PTR file_ptr,_file_offsetoffset, _mqx_uintmode)函数来定位,但是我看了一下MQX中 _file_offset 的定义是int型的,我的理解是从-65535到+65535,所以当我文件超过64K的时候,问题就来了,我写不进去了,因为offset变成负数了!
看看哪位高手对此有什么见解? keil 中 int 占两个字节,范围-32768+32767, unsigned int 0-65535。用long型,占用4个字节,范围:-2147483648+2147483647 zhw950 发表于 2014-6-29 15:29
keil 中 int 占两个字节,范围-32768+32767, unsigned int 0-65535。用long型,占用4个字节,范围:- ...
刚才跟了一下,好像问题不在这里,我写100000进去也没有问题啊!还得再看看! wangpengcheng 发表于 2014-6-29 15:56
刚才跟了一下,好像问题不在这里,我写100000进去也没有问题啊!还得再看看! ...
一般8位、16位单片机的int位16位。32位机的int位32位。 lcofjp 发表于 2014-6-29 16:07
一般8位、16位单片机的int位16位。32位机的int位32位。
是的,问题不在范围上,在MSD中,我刚才跟踪了一下,发现MSD在拷文件的时候不定时就跳到文件开始的位置重新拷贝,郁闷!此帖结帖了!谢谢! 开始玩mqx了,期待分享 用 sizeof 可以判断int吧~ 过来学习的,int一般最高位要占用一位的吧。 songjie 发表于 2014-7-3 12:28
用 sizeof 可以判断int吧~
sizeof只能判断它占用多少个byte空间! jiang887786 发表于 2014-9-3 11:23
过来学习的,int一般最高位要占用一位的吧。
是的,只是最高位被作为正负号用! wangpengcheng 发表于 2014-9-3 11:24
是的,只是最高位被作为正负号用!
有符号数在C语言里不是用的补码的形式? 浪里白条 发表于 2014-9-3 11:27
有符号数在C语言里不是用的补码的形式?
好像是!记忆模糊! wangpengcheng 发表于 2014-9-3 11:29
好像是!记忆模糊!
如果是补码的话,就不是以最高位做符号位了。 浪里白条 发表于 2014-9-3 11:30
如果是补码的话,就不是以最高位做符号位了。
解释一下! wangpengcheng 发表于 2014-9-3 11:23
sizeof只能判断它占用多少个byte空间!
多少字节 不就判断出了取值的 范围啊~~~!!!~
songjie 发表于 2014-9-3 12:05
多少字节 不就判断出了取值的 范围啊~~~!!!~
呵呵,坑在这儿呢,脑子笨,没转过来! wangpengcheng 发表于 2014-9-3 12:06
呵呵,坑在这儿呢,脑子笨,没转过来!
2字节是16位2的16次方啊
4字节是32位2的32次方啊
没有问题吧~~~ wangpengcheng 发表于 2014-9-3 11:32
解释一下!
哈,这个我也忘了,百度了一下
http://baike.baidu.com/view/377340.htm?fr=aladdin songjie 发表于 2014-9-3 12:08
2字节是16位2的16次方啊
4字节是32位2的32次方啊
有问题,我说的是int型,不是uint形{:titter:} 浪里白条 发表于 2014-9-3 12:08
哈,这个我也忘了,百度了一下
http://baike.baidu.com/view/377340.htm?fr=aladdin
看了,不是补码,只是最高位是正负号! wangpengcheng 发表于 2014-9-3 12:12
看了,不是补码,只是最高位是正负号!
原来如此,学习了。 wangpengcheng 发表于 2014-9-3 12:11
有问题,我说的是int型,不是uint形
对啊~~~int啊 -2的16次方/2~ + 2的16次方/2(加1还是减1)
uint是 无符号 int型啊~~~0 ~ 2的16次方
没问题吧~ songjie 发表于 2014-9-3 12:14
对啊~~~int啊 -2的16次方/2~ + 2的16次方/2(加1还是减1)
uint是 无符号 int型啊~~~0 ~ 2的16 ...
{:sweat:} 没问题,你厉害! songjie 发表于 2014-9-3 12:14
对啊~~~int啊 -2的16次方/2~ + 2的16次方/2(加1还是减1)
uint是 无符号 int型啊~~~0 ~ 2的16 ...
32位系统中也是2的16次方? 浪里白条 发表于 2014-9-3 12:20
32位系统中也是2的16次方?
我是打比方~~~的
32位的就是2的32次方~~ 浪里白条 发表于 2014-9-3 12:20
32位系统中也是2的16次方?
看17 楼吧~~~~
我的另外一个回复~ wangpengcheng 发表于 2014-9-3 12:15
没问题,你厉害!
没问题吧~~~ 别吓我,要不然我害怕~ songjie 发表于 2014-9-3 12:21
看17 楼吧~~~~
我的另外一个回复~
看了,懂了。 浪里白条 发表于 2014-9-3 12:22
看了,懂了。
您的飞币多的只能显示 1万 了~~ c语言书上就有讲的 songjie 发表于 2014-9-3 12:26
您的飞币多的只能显示 1万 了~~
飞币1W封顶,正好等您呢。 浪里白条 发表于 2014-9-3 12:27
飞币1W封顶,正好等您呢。
小白,你又调皮了!{:titter:} xlxbangel 发表于 2014-9-3 12:27
c语言书上就有讲的
唉,人老了,脑子记不住了! wangpengcheng 发表于 2014-9-3 12:30
唉,人老了,脑子记不住了!
看来我还不够老啊 xlxbangel 发表于 2014-9-3 12:31
看来我还不够老啊
要不要拔苗助长啊!{:titter:} wangpengcheng 发表于 2014-9-3 12:32
要不要拔苗助长啊!
额。。。这个就算了 xlxbangel 发表于 2014-9-3 12:34
额。。。这个就算了
{:titter:} {:titter:} ,这贴成了 对话框了~~~ songjie 发表于 2014-9-3 12:37
,这贴成了 对话框了~~~
QQ群{:titter:} MQX还没看过 顶顶
页:
[1]