Перевод чисел из одной системы счисления в другую на С++


#include <windows.h>
#include <math.h>

int main (void)
{	
	int val = pow(16.0, 0); // = 1

	int val1 = 1 << 16; //65536

	//0xFFFF = 65535 из шестнадцатеричной в десятичную
	int val2 = 0xF * pow(16.0, 3) + 0xF * pow(16.0, 2) + 0xF * pow(16.0, 1) + 0xF * pow(16.0, 0);
	
	//0b1111 = 15 из двоичной в десятичную
	int val4 = 1 * pow(2.0, 3) + 1 * pow(2.0, 2) + 1 * pow(2.0,1) + 1 * pow(2.0, 0);

	return 0;
}

К примеру у нас есть десятичное число 1010 - как его разложить на составляющие:


1 * (10 ^ 3) + 0 * (10 ^ 2) + 1 * (10 ^ 1) + 0 * (10 ^ 0) = 1010

Где знак ^ это возведение в степень, число 10- основание системы счисления.

Теперь у нас есть шестнадцатеричное число 0xF0F0 - как его разложить на составляющие:


15 * (16 ^ 3) + 0 * (16 ^ 2) + 15 * (16 ^ 1) + 0 * (16 ^ 0) = 0xF0F0

Где число 16- основание системы счисления.