C语言左移4位为什么是乘以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);

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部