首页 > 解决方案 > 无符号长字符串以二进制形式附加 ascii 值。C++

问题描述

我正在寻找一种简单地将 text[i] 的 ASCII 值附加到无符号长整数的方法。

例如:

字符串某事=“abc”;

ASCII 值为 97、98、99。

不是想得到 97, 98, 99 的总和使其 294 它应该是6 382 179

编辑

为了澄清:意味着附加的值是 ASCII 值的 8 位: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;
}

标签: c++

解决方案


在添加新位之前,您需要左移运算符来移动现有位

unsigned long temp = 0;
for (int i = 0; i != text.size(); i++)
{
    temp <<= 8;
    temp += text[i];
}
return temp;

推荐阅读