ブルーブリッジカップの16進数変換10進数(c++コード実装)
1628 ワード
/*問題は、キーボードから8ビットを超えない正の16進数文字列を入力し、正の10進数に変換して出力することを示します.注:16進数の10~15は、それぞれ大文字のアルファベットA、B、C、D、E、Fで表されます.サンプル入力FFFFサンプル出力65535*/法1:
#include
#include
#include
using namespace std;
int main(){
string shiliu;
long long sum=0;// , 。
cin>>shiliu;
int t=0;
int len=shiliu.size();
for(int i=len-1;i>=0;i--)
{
if(shiliu[i]<='9'&&shiliu[i]>='0')
sum+=(long long)(shiliu[i]-'0')*(long long)pow(16.0,t);
else if(shiliu[i]-'A'>=0&&shiliu[i]-'F'<=0)
sum+=(long long)(shiliu[i]-'A'+10)*(long long)pow(16.0,t);
t++;
}
cout<
#include
using namespace std;
int main()
{
string s;// s
cin>>s;
int len = s.size();
long long sum=0;
//
for(int i = 0;i='A'&&s[i]-'A'<=5)
sum+=(long long)(s[i]-'A'+10)*(long long)pow(16.0,len-i-1);
else
sum+=(s[i]-'0')*(int)pow(16.0,len-i-1);
}
cout<
#include
using namespace std;
int main() {
string s;
while (cin >> s) {
int len = s.length();
long long sum = 0;
for (int i = 0; i < len; i++) {
if (s[i] >= 'A' && s[i] <= 'F') {
sum = sum * 16 + s[i] - 'A' + 10;
}
else {
sum = sum * 16 + s[i] - '0';
}
}
cout << sum;
}
return 0;
}