Excel中的行列数用A~Z 26个字母表示,A, B, C, D, …, Z, AA, AB, …, AZ, BA, BB, … 分别表示10进制数1, 2, 3, 4, …, 26, 27, 28, …, 52, 53, 54…。
请实现2个函数decToExcel
和excelToDec
,将10进制数转换为Excel数,以及将Excel数转换为10进制数。
因为是从1开始的,所以还比较烦。
//将十进制数转换为excel数 string decToExcel(int decNum) { string ret; decNum; while(decNum) { ret.push_back((decNum-1)%26+'A'); decNum=(decNum-1)/26; } reverse(ret.begin(),ret.end()); return ret; } //将excel数转换为十进制数 int excelToDec(string excelNum) { int ret=0; for(int i=0;i<excelNum.size();i++) ret=ret*26+excelNum[i]-'A'+1; return ret; }