【程式設計師面試金典】 寫出一個程式,接受一個十六進位制的數值字串,輸出該數值的十進位制字串。(多組同時輸入 )

HelloZEX發表於2018-07-25

寫出一個程式,接受一個十六進位制的數值字串,輸出該數值的十進位制字串。(多組同時輸入 )


#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include<sstream>
using namespace std;

int main(void)
{
	int digital, len, times;
	string ch;
	while (getline(cin, ch))
	{
		int times = 1;
		int  digital = 0;
		for (len = ch.size() - 1; len >= 2; --len)
		{
			ch[len] = tolower(ch[len]);
			if (ch[len] >= 'a' && ch[len] <= 'f')
			{
				digital += (ch[len] - 87) * times;
			}
			else if (ch[len] >= 'A' && ch[len] <= 'F')
			{
				digital += (ch[len] - 55) * times;
			}
			else if (isdigit(ch[len]))
				digital += (ch[len] - 48) * times;
			else
			{
				break;
			}
			times *= 16;
		}
		printf("%d\n", digital);
	}
	return 0;
}

 

相關文章