- 听众
- 收听
- 积分
- 4568
- 主题
- 回帖
- 0
- 精华
注册时间2007-6-1
最后登录1970-1-1
该用户从未签到
|
发表于 2008-6-18 15:52:49
|
显示全部楼层
7进制转3进制
又是一道MS的题,把7进制数转换成3进制数。
#include <climits>
bool ConvertBase723(const char *src, char *dst, int len)
{
int digit;
int value = 0;
int start = 0, end = 0;
for (int i = 0; src >= '0' && src <= '6'; i++)
{
if (value <= (INT_MAX - (digit = src - '0')) / 7)
{
value = 7 * value + digit;
}
else
{
return false;
}
}//for
do
{
dst[end++] = value % 3 + '0';
value /= 3;
len--;
} while(value && (len > 0));
if (len <= 0)
{
return false;
}
dst[end--] = '\0';
while (start < end)
{
dst[start] ^= dst[end];
dst[end] ^= dst[start];
dst[start] ^= dst[end];
start++;
end--;
}
return true;
} |
|