簡體   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