我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: [屏蔽]编程的一个小问题!! 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

预言



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
家族: YD一族
发贴: 896
威望: 0
浮云: 2213
在线等级:
注册时间: 2007-03-14
最后登陆: 2011-05-20

5come5帮你背单词 [ pump /pΛmp/ n. 泵,抽水机,打气机;v. 用抽水机抽,打气 ]


[屏蔽]编程的一个小问题!!

  for(j=0;j<str;j++)
{
  ch=xx[j];
  if(ch<<4 <=32 || ch<<4 >100)
  continue;     
  else  xx[j]+=ch<<4;
-------------------------------------------
for(j=0;j<str;j++)
{
ch=xx[j]<<4;
if(ch <=32 || ch >100)
continue;            
else    xx[j]+=ch;

以上是两小段程序,不同之处就是有颜色的部分,但是我觉得这没什么不同,但是运行的结果不一样,问题出在哪里呢? 请懂的人赐教 ! 非常谢谢!!
顶端 Posted: 2008-03-30 22:55 | [楼 主]
rx~卡卡



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1449
威望: 0
浮云: 1191
在线等级:
注册时间: 2007-04-19
最后登陆: 2009-11-26

5come5帮你背单词 [ brand /brænd/ n. 烙印,标记,(商品)牌子,商标,铭记,铭刻 ]


ch<<4 是不是每执行一次就做一次ch=ch<<4 的动作?
顶端 Posted: 2008-03-30 23:18 | [1 楼]
rx~卡卡



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1449
威望: 0
浮云: 1191
在线等级:
注册时间: 2007-04-19
最后登陆: 2009-11-26

5come5帮你背单词 [ sane /sein/ a. 沙的,不稳固的 ]


Quote:
引用第7楼adou于2008-03-30 23:20发表的  :
加法(+)的优先级比右移的高,所以
xx[j]+=ch<<4;
实际是:xx[j]=(xx[j]+ch)<<4

不是
#include <stdio.h>
main()
{
    char a=1;
    if(a<<2<16||a<<2>1)
    { a+=a<<2;
    printf("a is %d\n",a);}
    else
       
        printf("N0 ! a is %d\n",a);
}

结果:a is 5
顶端 Posted: 2008-03-30 23:27 | [2 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.012591(s) query 8, Time now is:05-23 19:42, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号