u16 Extract_data(u8 *p) { u16 i,sum,t; if(p[0]=='3') { for(i=1;i<5;i++) { sum=sum*10+p[i]; } }return sum; } 如果输入31552得到什么sum
时间: 2024-04-19 17:28:06 浏览: 47
Data_Extract_src.zip_Excel数据提取_VB_VB提取excel数据_extract exc_提取exce
根据给出的修改后的代码逻辑,如果输入的数据是 `31552`,函数 `Extract_data` 会判断 `p[0]` 是否等于字符 `'3'`,条件满足,则进入循环。
在循环中,变量 `sum` 的初始值没有给出,所以它的初始值是不确定的,可能是一个随机值。在每次循环中,将当前字符转换为数字并累加到 `sum` 中。
假设 `sum` 的初始值为 0,则循环的执行过程如下:
1. 第一次循环:`sum = 0 * 10 + '1' = 1`
2. 第二次循环:`sum = 1 * 10 + '5' = 15`
3. 第三次循环:`sum = 15 * 10 + '5' = 155`
4. 第四次循环:`sum = 155 * 10 + '2' = 1552`
所以,最终得到的 `sum` 的值为 1552。请注意,由于 `sum` 的数据类型是 `u16`,它是一个无符号整数类型,所以得到的结果是正数。
阅读全文