C++ функция перевода из 16-ричной системы в 10-тичную
{
char buffer[20];
_itoa(x16,buffer,16);
return buffer;
}
А есть ли в С++, функция обратная _itoa, что б переводила из 16ричной системы в десятичную?
В твоем случае она переводит из двоичной, десятичной, 16-ричной переменной в "16-ричную" строку. Между системами счисления она ну никак не переводит. Если бы она принимала на входе строку и выдавала строку на выходе - еще можно бы было о чем-то таком говорить.
{
char *endstr;
int i;
CString s;
i = strtol(str, &endstr, 16);
s = perevod_x10(i);
return s;
}
Потом ее вызываю
CString des;
des = HexToDes("100");
m_list2.AddString(des);
И на выходе получаю 256. Все правильно. А если к примеру у меня есть переменная
Как мне ее можно вызвать
m_list2.AddString(des);
Тоесть мне надо передавать значение переменной, а не конкретное число!
конечно можно было
char *c1 = "100";
des = HexToDes(c1);
m_list2.AddString(des);
Но мне надо именно int
using namespace std;
string HextoString(int val)
{
ostringstream oss;
oss << hex << uppercase << val;
return oss.str();
}
int val = 0x100;
Эээ, ну в общем-то тут я сделал аналог вашей функции perevod_x16...
А число оно и есть число - его величина от формата же не зависит. Формат виден только при выводе и когда вы инициализируете. Например:
int i = 255; // dec
то же что и
int i = 0xFF; // hex
А число оно и есть число - его величина от формата же не зависит. Формат виден только при выводе и когда вы инициализируете. Например:
int i = 255; // dec
то же что и
int i = 0xFF; // hex
та я не про это, я еще не так слен в программировании, мне интересно откуда взялось:
ostringstream oss; //что это за тип такой?
oss << hex << uppercase << val; //что такое oss, hex, uppercase
return oss.str(); //и почему мы возвращаем oss.str()
И потом, при приписывании к интовской переменной 0x мы определяем число в 16 ричной системе?
Есть два выхода: либо тупо копировать и вставлять, либо покупать толстые учебники по c++ и изучать. Если я начну отвечать, то появятся еще вопросы и мне придется перессказывать весь учебник...
Для представления шестнадцатеричных констант к числу добавляется спереди 0x , для восьмеричных, просто 0.