c++编程题
for(i=1;i<strlen(t);i++){result*=8;result+=*(t+i)-'0';}怎么运算...
for(i = 1; i < strlen(t); i ++)
{
result *= 8;
result += *(t+i)-'0';
}怎么运算 展开
{
result *= 8;
result += *(t+i)-'0';
}怎么运算 展开
展开全部
对存放在t数组中的字符串进行处理
从循环来看,要从第2个字符开始处理到最后一个(i的初始值为1,从数组下标1开始处理)
将reuilt累乘8(程序中看不到reulat的初始值),然后再向result变量上累加当前字符减去字符'0'的结果(如果当前字符是数字字符'9',则减去'0'的结果就是9,即取出数字字符的实际代表数值)
这个程序似乎是将t字符串按照8进制取值
假设t="o123",result=0,八进制123等于十进制83
【i=1;】i=1
i<strlen(t)即i<4成立开始循环
【result*=8;】result=0,【result+=*(t+i)-'0'】result+='1'-'0'相当于result+=1,result=1
【i++;】i=2,由于i<4成立继续循环
【result*=8;】result=8,【result+=*(t+i)-'0'】result+='2'-'0'相当于result+=2,result=10
【i++;】i=3,由于i<4成立继续循环
【result*=8;】result=80,【result+=*(t+i)-'0'】result+=3,result=83
【i++;】i=4,由于i<4不成立结束循环
循环结束后result等于83,相当于将字符串t中的八进制数据字符串转换成了实际数值来用
从循环来看,要从第2个字符开始处理到最后一个(i的初始值为1,从数组下标1开始处理)
将reuilt累乘8(程序中看不到reulat的初始值),然后再向result变量上累加当前字符减去字符'0'的结果(如果当前字符是数字字符'9',则减去'0'的结果就是9,即取出数字字符的实际代表数值)
这个程序似乎是将t字符串按照8进制取值
假设t="o123",result=0,八进制123等于十进制83
【i=1;】i=1
i<strlen(t)即i<4成立开始循环
【result*=8;】result=0,【result+=*(t+i)-'0'】result+='1'-'0'相当于result+=1,result=1
【i++;】i=2,由于i<4成立继续循环
【result*=8;】result=8,【result+=*(t+i)-'0'】result+='2'-'0'相当于result+=2,result=10
【i++;】i=3,由于i<4成立继续循环
【result*=8;】result=80,【result+=*(t+i)-'0'】result+=3,result=83
【i++;】i=4,由于i<4不成立结束循环
循环结束后result等于83,相当于将字符串t中的八进制数据字符串转换成了实际数值来用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询