Я хочу добавить два целых числа без знака 32 бит в 1 64-битное целое число. Я пробовал этот код, но он терпит неудачу. Тем не менее, он работает на 16-битных целых чисел в 1 32 битДобавление бит в C/C++
Код:
char buffer[33];
char buffer2[33];
char buffer3[33];
/*
uint16 int1 = 6535;
uint16 int2 = 6532;
uint32 int3;
*/
uint32 int1 = 653545;
uint32 int2 = 562425;
uint64 int3;
int3 = int1;
int3 = (int3 << 32 /*(when I am doing 16 bit integers, this 32 turns into a 16)*/) | int2;
itoa(int1, buffer, 2);
itoa(int2, buffer2, 2);
itoa(int3, buffer3, 2);
std::cout << buffer << "|" << buffer2 << " = \n" << buffer3 << "\n";
Выход когда 16bit часть включена:
1100110000111|1100110000100 =
11001100001110001100110000100
выход, когда 32bit часть включена:
10011111100011101001|10001001010011111001 =
10001001010011111001
Почему это не работает? Спасибо
Не могли бы вы опубликовать реализацию '_itoa()'? – EOF
Нет языка C/C++! – Olaf
@EOF _itoa() является «более безопасным» в соответствии с методом Visual Studio «itoa». Он утверждает, что он является версией C/C++, поэтому тег Olaf –