繁体   English   中英

将整数转换为ascii值C ++

[英]Converting an integer to to ascii values C++

我正在尝试使用ascii将数字转换为字母,目前我一次只能将一个字母转换为一个字母:

编辑:我一直在努力进行的RSA加密输出当前为整数形式,我正在尝试找出如何将其转换为原始输入的单词/句子。 我快结束了,但是我完全陷入了最后一个“障碍”。 我添加上下文是因为有评论询问为什么我要这样做(或要这样做的话)。

编辑:如果在加密过程中我使用ASCII值-87,则所有字母将为2位数字长,从而消除了一些ASCII字符为3个字母,另一些为2的问题,这是否使问题更容易解决? (将我限制为仅写信,但就其目的而言是可以的)

#include <string>
#include <iostream>

char returnChar(int x)
{
    return (char) x;
}

int main()
{
    std::cout << returnChar (119);
}

这将转换32-> w。

如何修改此功能以允许我将“ 3232”->“ ww”或任何其他整数更改为ascii字符,例如“ 32242713”->“ word”。

编辑:我认为使用某种mod函数将其拆分为两个数字的块,然后可以将其转换为字符可能有效吗?

如何克服某些具有2位数字和3位数字的ASCII字符的问题? 我认为这个问题已经解决,如第二次编辑中所述

如果您发现我完全以错误的方式处理此问题,您能否建议我尝试一种可行的替代方法?

感谢您的任何反馈。

您要的是不可能的。 您有几种选择:

  1. 将int更改为字符串,并在字符串内放置空格/其他字符:

    std::string test = "119 119";

  2. 将总值转换为二进制,然后逐字节解析:

    unsigned int test = 30583; // 119*256+119 char a = (test>>8)&0xff; char b = test&0xff;

  3. 将数据传递到向量中,并一次转换一个元素:

    std::vector<char> returnChar(const std::vector<int> &data){ std::vector<char> output; for(unsigned int i=0;i<data.size();i++) output.push_back(char(data[i])); return output; }

我可能会坚持使用第二种方法,因为-这里有一个大胆的猜测-它在实际生成数字的地方应该不会发生太大变化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM