c语言 右移16,求大神解释右移运算4位和除16的区别。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

xx[i][j]=xx[i][j]>>4+xx[i][j-1];

和xx[i][j]=xx[i][j]/16+xx[i][j-1];

这两句结果不是一样的么,怎么放在同一个程序中得到不同的结果?

附源程序#include

#include

#include

#include

char xx[50][80];

int maxline=0;

int ReadDat();

void WriteDat();

void CharConvA(void)

{

int i,j,k,str;

char ch;

for(i=0;i

{

str=strlen(xx[i]);

ch=xx[i][str-1];

for(j=str-1;j>0;j--)

xx[i][j]=xx[i][j]>>4+xx[i][j-1]; //这个地方不懂

xx[i][0]+=ch;

}

}

void main()

{

system("cls");

if (ReadDat())

{ printf("数据文件IN88.DAT不能打开!\n\007"); return; }

CharConvA();

WriteDat();

}

int ReadDat(void)

{

FILE *fp;

int i=0;

char *p;

if((fp=fopen("IN88.DAT","r"))==NULL) return 1;

while (fgets(xx[i],80,fp)!=NULL)

{

p=strchr(xx[i],'\n');

if (p) *p=0;

i++;

}

maxline=i;

fclose(fp);

return 0;

}

void WriteDat()

{

FILE *fp;

int i;

system("cls");

fp=fopen("OUT88.DAT","w");

for(i=0;i

{ printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); }

fclose(fp);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值