三级网络上机抽到左移4位 低位补零 高手指点

来源:百度知道 编辑:UC知道 时间:2024/05/21 19:27:24
今天上机抽了道题说是左移4位低位补0,望高人指点答案!
说是一篇文章,字符左移4位低位补0,若左移后该值<=32||>100;该字符不变,否则加上原值存于原位置;大体这样。我的答案!!!!
int i,j;
int str;
char tmp;
for(i=0;i<maxline;i++)
{
str=strlen(xx);
for(j=0;j<str;j++)
{
tmp=(xx[j]<<4);
if(tmp<=32||tmp>100)
continue;
else xx[j]+=tmp;
}
}
这样对吗?
结果出现了乱码呢。。。。
int i,j;
int str;
char tmp;
for(i=0;i<maxline;i++)
{
str=strlen(xx[i]);
for(j=0;j<str;j++)
{
tmp=(xx[i][j]<<4);
if(tmp<=32||tmp>100)
continue;
else xx[i][j]+=tmp;
}
}
这样对吗

恭喜你,很正确!
你把一般的字符左移4位,当然是乱码!!

恭喜你,很正确!
把一般的字符左移4位,当然是乱码!! 出现乱码是因为左移4位ascii码已经加到特殊符号的数值上了,你编的程序没错!

正确,出现乱码是因为左移4位ascii码已经加到特殊符号的数值上了,你编的程序没错!