Я ищу способ просто добавить значение ASCII text[i] к беззнаковому длинному.
Например:
строка что-то = "abc";
Значения ASCII: 97, 98, 99.
Я НЕ пытаюсь получить сумму 97, 98, 99, чтобы получилось 294, должно быть 6 382 179.
РЕДАКТИРОВАТЬ
Для пояснения: это означает, что добавленное значение представляет собой 8 бит значений ASCII: 0b01100001 + 0b01100010 + 0b01100011, что составляет: 0b011000010110001001100011 = 6 382 179.
#include <iostream>
#include <string>
using namespace std;
unsigned long message(string text){
unsigned long temp=0;
for (int i = 0; i != text.size(); i++)
{
temp += int(text[i]);
}
return temp;
}
int main(){
string something = "abc";
cout << message(something);
return 0;
}
Мое плохое значение должно быть 6 382 179 -> из добавления 8-битного значения ASCII
Вам нужен оператор сдвига влево, чтобы переместить существующие биты, прежде чем добавлять новые биты
unsigned long temp = 0;
for (int i = 0; i != text.size(); i++)
{
temp <<= 8;
temp += text[i];
}
return temp;
«Я НЕ пытаюсь получить сумму 97, 98, 99, чтобы получилось 294, должно быть 6 513 251», что это значит?