C++ Tutorial/Data Types/hexadecimal

Материал из C\C++ эксперт
Версия от 13:31, 25 мая 2010; Admin (обсуждение | вклад) (1 версия: Импорт контента...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Convert hex number to integer

<source lang="cpp">#include <iostream>

  1. include <string>
  2. include <cstdlib>

using namespace std; long hex2int(const string& hexStr); int main( ) {

 string str1 = "0x12AB";
 cout << hex2int(str1) << endl;
 string str2 = "12AB";
 cout << hex2int(str2) << endl;

}

long hex2int(const string& hexStr) {

 char *offset;
 if (hexStr.length( ) > 2) {
   if (hexStr[0] == "0" && hexStr[1] == "x") {
     return strtol(hexStr.c_str( ), &offset, 0);
   }else{
     cout << "hex must start with 0x";
     return 0;
   }
 }

}</source>

4779
hex must start with 0x0

Fill space with ?

<source lang="cpp">#include <iostream>

  1. include <iomanip>

using namespace std; int main(void){

  cout << hex << 100 << endl;
  cout << setfill("?") << setw(10) << 2343.10 << endl;
}</source>

Show the base in hexadecimal

<source lang="cpp">#include <iostream>

  1. include <iomanip>
  2. include <string>
  3. include <sstream>

using namespace std; int main( ) {

 stringstream ss;
 ss << showbase << hex << 16; // Show the base in hexadecimal
 cout << ss.str( ) << endl;

}</source>

0x10