vIllaInssss 2020-02-22 23:38 采纳率: 75%
浏览 370
已结题

求大神解答(困扰了好几天了)

C语言 UVa 213
里面的

int readcode() //用于读取编码头code;
{
memset(code,0,sizeof(code));
code[1][0]=readchar();
if(code[1][0]==EOF)
return 0; //如果输入为EOF,结束输入;
for(int len=2;len<=7;len++){
for(int i=0;i<(1<<len)-1;i++){//注意(1<<len)的括号;
int ch=getchar();
if(ch==EOF) //如果输入为EOF,结束输入;
return 0;
if(ch=='\n' || ch=='\r')//输入\n||\r代表编码头输入完成;
return 1;
code[len][i]=ch; //i代表的就是[len][value]中的value的值;
}
}
}

为什么这么保存? 如何调用的? 帮忙解读一下,谢谢。

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-02-23 08:46
    关注
    1<<len相当于2的len次方
    char codes[8] 这个存储的是输入的字符
    readchar()-'0'是把字符模式的0,1转换成数字的0,1
    这段代码的思路就是
    把二进制的从低到高以0为起点的每一位,乘以2的n次方,把结果加起来,就是10进制。
    比如
    1011 = 1x2^0+1x2^1+0x2^2+1x2^3=1+2+0+8=11
    
    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程