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