OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7645|回复: 9

在线等,急急急急急 关于数据类型的问题

[复制链接]

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2014-1-19
在线时间
0 小时
发表于 2015-1-9 10:59:42 | 显示全部楼层 |阅读模式
5金钱
在线等   急急急急急急急             这几天我一直困扰一个问题       编译器keil     定义一个char t=0x81,printf(“t= %f”,t/1000);结果是多少?我算的结果是正的0.129,但是t有符号的,理论上结果应该是负数啊?   我特意用VC试了试       VC输出的结果就是-0.127                 单片机用补码表示负数    我求完补码,t补=0xff;在打印输出printf(“t= %f”,t/1000)结果是0.255,怎么都和理论的不一致呢?    我一直都没理解   求各位大神帮忙解答这个疑惑    感激不尽

最佳答案

查看完整内容[请看2#楼]

1.你写程序不换行吗? 2.貌似有点无聊 3.初始化了一个字节的有效数据,%f是4个字节读取吧?那三个字节是啥能知道吗?
在最短的时间内做一名电子工程师。。。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-1-9 10:59:43 | 显示全部楼层
1.你写程序不换行吗?
2.貌似有点无聊
3.初始化了一个字节的有效数据,%f是4个字节读取吧?那三个字节是啥能知道吗?
小小蜗牛
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12691
金钱
12691
注册时间
2012-11-26
在线时间
3710 小时
发表于 2015-1-9 13:11:24 | 显示全部楼层
129/1000 = -0.127? 

呵呵  不太懂楼主意思
学无止境
回复

使用道具 举报

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2014-1-19
在线时间
0 小时
 楼主| 发表于 2015-1-9 13:26:32 | 显示全部楼层
回复【3楼】jermy_z:
---------------------------------
我就是想知道    char t =  0x81;t/1000=?在keil里
在最短的时间内做一名电子工程师。。。。。
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12691
金钱
12691
注册时间
2012-11-26
在线时间
3710 小时
发表于 2015-1-9 13:36:11 | 显示全部楼层
回复【4楼】stm:
---------------------------------
你觉得 129/1000  等于几?
学无止境
回复

使用道具 举报

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2014-1-19
在线时间
0 小时
 楼主| 发表于 2015-1-9 13:41:38 | 显示全部楼层
回复【2楼】jiutianshenjian:
---------------------------------
恩  我知道问题出现在哪里 了    谢谢
在最短的时间内做一名电子工程师。。。。。
回复

使用道具 举报

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2014-1-19
在线时间
0 小时
 楼主| 发表于 2015-1-9 13:43:58 | 显示全部楼层
回复【5楼】jermy_z:
---------------------------------
char  0x81  这个0x81  可是有符号的    可不是您说的129
在最短的时间内做一名电子工程师。。。。。
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12691
金钱
12691
注册时间
2012-11-26
在线时间
3710 小时
发表于 2015-1-9 13:46:09 | 显示全部楼层
回复【7楼】stm:
---------------------------------
呵呵
学无止境
回复

使用道具 举报

17

主题

342

帖子

0

精华

高级会员

Rank: 4

积分
544
金钱
544
注册时间
2014-4-24
在线时间
20 小时
发表于 2015-1-9 13:49:08 | 显示全部楼层
你c语言还不够过关啊,计算结果也跟编译器有关系的,keil跟vc不同是正常的。
char为有符号8位数,能表示-128~127,0x81即129,超过127,即用补码表示,反推得它的原码为-127。
vc里面-127/1000=-0.127,“/”即浮点的除法,小数正常;
keil里面当“/”两边都是整数时,结果为整数的商,余数没有了。所以结果应该是0.000000
都是些细节,把基础弄扎实点。
回复

使用道具 举报

5

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2014-1-19
在线时间
0 小时
 楼主| 发表于 2015-1-14 13:23:29 | 显示全部楼层
回复【9楼】STM32VBT6:
---------------------------------
多谢您批评     确实还得加深C语言功底。
在最短的时间内做一名电子工程师。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 13:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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