打印

求一个表达式结果,到底是0 还是 1?

[复制链接]
3072|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hsw_21|  楼主 | 2009-8-18 09:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pic, pi, ic, ANSI, AN
本帖最后由 hsw_21 于 2009-8-18 09:15 编辑

pic中, 如果unsigned char a=0x80;这个表达是结果是多少呢? 是1 还是0?
( a & 0x80 ) = ?

注: 资料显示,pic的c 与 ANSI-C 对非位变量强制类型转换成为变量时,PIC的C是判断最低位,ANSI-C是判断整个变量的值,如果这样写:

if( a & 0x80 ) ....算不算强制转换呢? 若a=0x80,结果是0 还是1 呢?
沙发
XIEYUANBIN| | 2009-8-18 09:44 | 只看该作者
这个结果是1

使用特权

评论回复
板凳
XIEYUANBIN| | 2009-8-18 09:44 | 只看该作者
你自己软仿真试试不就知道了?

使用特权

评论回复
地板
zhaiweilei| | 2009-8-19 16:24 | 只看该作者
到处问,在好几个群上问,现在又在论坛上问!
有意思没!
在群上给你都说的很清楚了!
你还是别做开发了!

使用特权

评论回复
5
yewuyi| | 2009-8-19 16:32 | 只看该作者
pic中, 如果unsigned char a=0x80;这个表达是结果是多少呢? 是1 还是0?
( a & 0x80 ) = ?

注: 资料显示,pic的c 与 ANSI-C 对非位变量强制类型转换成为变量时,PIC的C是判断最低位,ANSI-C是判断整个变量的 ...
hsw_21 发表于 2009-8-18 09:14


谈不上什么强制转换,就是一个按位与而已,因为你使用了if语句,结果为真。

使用特权

评论回复
6
qmheli| | 2009-8-19 16:44 | 只看该作者
4楼ZHAIWEILEI真不知道天高地厚,你试过海有多深。你牛气什么嘛?潜水,是所有程序员。。。技术员。。。永远要做的事

使用特权

评论回复
7
McuPlayer| | 2009-8-19 16:53 | 只看该作者
if( a & 0x80 )   根本不需要类型转换

请参考等效表达式:  if ( (a & 0x80) !=0 )

使用特权

评论回复
8
zhaiweilei| | 2009-8-20 08:59 | 只看该作者
4楼ZHAIWEILEI真不知道天高地厚,你试过海有多深。你牛气什么嘛?潜水,是所有程序员。。。技术员。。。永远要做的事
qmheli 发表于 2009-8-19 16:44

我菜的很,刚开始学,什么都不会!
请你说清楚,我怎么牛气了?我又怎么不知道天高地厚!!

使用特权

评论回复
9
yewuyi| | 2009-8-20 09:19 | 只看该作者
我菜的很,刚开始学,什么都不会!
请你说清楚,我怎么牛气了?我又怎么不知道天高地厚!!
zhaiweilei 发表于 2009-8-20 08:59



呵呵,不要冲动,冲动是魔鬼!

淡定淡定!

淡泊以明智,宁静以志远!

使用特权

评论回复
10
hsw_21|  楼主 | 2009-8-21 09:47 | 只看该作者
本帖最后由 hsw_21 于 2009-8-21 10:00 编辑

谢谢大家的帮助,做技术我们必须本着执着,认真,负责的精神。其实不管做哪行必须这么做,技术行业无止境,技术人员不要固步自封,多多交流才有更大进步,细节才能控制得很好。
每个人有每个人的想法,尊重 与 信任是团队成功的保证;坚守专业精神和职业道德,做一个快乐,富有的技术人员是我们的共同追求,为了爱自己的人和自己所爱的人。(包括父母,妻子,儿女,同事,老师,同行朋友……) 英雄相惜!

大家每个人每天都是24小时,如果每个人每天工作学习10小时的话(超过10小时,我想将必然加剧整个行业的从业人员工作极限竞争,对大家的幸福生活都将是悲剧。):一个人在某一知识点强,在另一知识点必然弱于你;反之亦然。 因为人的智商太高,太低的都不是很多。即使是笨鸟,也有先飞的动力与机会!

要懂得人与人之间的相互尊重!

使用特权

评论回复
11
yewuyi| | 2009-8-21 12:50 | 只看该作者
你想的太多太多,而且太多的是你无法改变的事情。

人都是趋吉避凶的,你明知道一些行业没前途,你又何必去混呢,如果你认为工程师职业没前途,你就不应该选择他,当不选择的多了后,自然就又变的有前途了。

这是社会的自然更替过程,非人力所能改变。

使用特权

评论回复
12
auzxj| | 2009-8-21 12:56 | 只看该作者
“一个人在某一知识点强,在另一知识点必然弱于你;”什么逻辑??

使用特权

评论回复
13
fzj| | 2009-8-23 19:35 | 只看该作者
0就一种状态,而1却有N种"状态"

使用特权

评论回复
14
janly| | 2009-8-23 20:43 | 只看该作者
看你是定义成无符号的,结果是1;

使用特权

评论回复
15
hsw_21|  楼主 | 2009-8-24 14:21 | 只看该作者
经过实际试验,结果的确是1.

使用特权

评论回复
16
maxking| | 2009-10-5 11:19 | 只看该作者
是2 。不是0 1

使用特权

评论回复
17
与时俱进| | 2009-10-10 09:25 | 只看该作者
都讨论些什么啊?

使用特权

评论回复
18
牧笛横吹| | 2009-10-10 11:44 | 只看该作者

使用特权

评论回复
19
兰天白云| | 2009-10-12 08:20 | 只看该作者
如果搞不清楚,就不要使用这种易产生误解的表达方式,同样,生活中在表达某种观点时也不要用两性词汇等易误解的东西

使用特权

评论回复
20
t.jm| | 2009-10-13 10:15 | 只看该作者
我看还真没几个人算完全搞对!
unsigned char a=0x80,
(a & 0x80)结果不是0,也不是1,就是0x80!
测试:
if (  (a & 0x80) == 0 ) ...
if (  (a & 0x80) == 1 ) ...
if (  (a & 0x80) == 0x80 ) ...

if (  0 ) ...
if (  1 ) ...
if (  2 ) ...
if (  0x80 ) ...
看看哪些会执行后面的语句!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

418

主题

2675

帖子

1

粉丝