[英]C++: Converting Hexadecimal to Decimal
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來執行此操作,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它是否可以像這樣工作:
輸入: 265
Output: 613
有沒有辦法做到這一點?
注意:我試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來做到這一點,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它會像這樣工作:
輸入: 265
輸出: 613
反正有這樣做嗎?
注意:我已經嘗試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來做到這一點,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它會像這樣工作:
輸入: 265
輸出: 613
反正有這樣做嗎?
注意:我已經嘗試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來做到這一點,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它會像這樣工作:
輸入: 265
輸出: 613
反正有這樣做嗎?
注意:我已經嘗試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來做到這一點,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它會像這樣工作:
輸入: 265
輸出: 613
反正有這樣做嗎?
注意:我已經嘗試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來做到這一點,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它會像這樣工作:
輸入: 265
輸出: 613
反正有這樣做嗎?
注意:我已經嘗試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來做到這一點,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它會像這樣工作:
輸入: 265
輸出: 613
反正有這樣做嗎?
注意:我已經嘗試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來做到這一點,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它會像這樣工作:
輸入: 265
輸出: 613
反正有這樣做嗎?
注意:我已經嘗試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
我正在尋找一種輕松地將hex
(十六進制)轉換為dec
(十進制)的方法。 我找到了一種簡單的方法來做到這一點,例如:
int k = 0x265;
cout << k << endl;
但是我不能輸入265
。 無論如何,它會像這樣工作:
輸入: 265
輸出: 613
反正有這樣做嗎?
注意:我已經嘗試過:
int k = 0x, b;
cin >> b;
cout << k + b << endl;
它不起作用。
如果你有一個十六進制字符串,你也可以使用下面的轉換成十進制
int base = 16;
std::string numberString = "0xa";
char *end;
long long int number;
number = strtoll(numberString.c_str(), &end, base);
我認為這更清潔,它也適用於你的例外。
#include <iostream>
using namespace std;
int main ()
{
long long int x;
cin >> hex >> x;
cout << x;
}
std::stoi、stol、stoul、stoul可以轉換為不同的數字系統
long long hex2dec(std::string hex)
{
std::string::size_type sz = 0;
try
{
hex = "0x"s + hex;
return std::stoll(hex, &sz, 16);
}
catch (...)
{
return 0;
}
}
如果您需要返回字符串,則類似
std::string hex2decstr(std::string hex)
{
std::string::size_type sz = 0;
try
{
hex = "0x"s + hex;
return std::to_string(std::stoull(hex, &sz, 16));
}
catch (...)
{
return "";
}
}
用法:
std::string converted = hex2decstr("16B564");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.