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

2023-05-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);

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐