c++ - 将字符串转换为整数(相当于二进制)

标签 c++ string data-conversion

我见过很多方法可以根据字符代表的内容(整数 12345)将诸如“12345”的字符串转换为整数,但我需要能够获取字符串的二进制等价物并转换 变成一个整数。例如,以字符串“Hello!”为例。 .在硬盘驱动器(或内存)上,它以二进制模式存储:

010010000110010101101100011011000110111100100001

如果您将这些位视为二进制数而不是文本,那么该模式也等于 79600447942433。

“你好!” = 79600447942433

我现在唯一的方法是循环直到字符串的末尾并将单个字符转换为整数,然后乘以 2^ position_of_charecter

#include <string>
#include <cmath>
using namespace std ;
// ...
string str = "Hello!" ; int i , total , temp ; unsigned char letter ;
for ( i = 0 ; i < str.length() ; i++ )
{
    letter = string[ i ] ;
    temp = ( int ) letter ;
    total += ( temp * pow( 2 , i ) ) ;
}
cout << "\"Hello!\" is equal to " << total << endl ;

但是我正在处理非常大的字符串,并且想要一种更快的方法来转换它

最佳答案

第一个改进:替换pow以及左移的相关转换 ( << )。

关于c++ - 将字符串转换为整数(相当于二进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887681/

相关文章:

c++ - 将 TensorFlow 链接到 C++。 Protobuf (/usr/local/include/google/protobuf)

php - 确定现有字符串的所有子字符串的最快方法

Java:不带 toString 的 StringBuffer 到 byte[]

c++ - 用空格字符替换子字符串

c# - 如何将 Unix 时间戳转换为 DateTime,反之亦然?

c++ - 具有三元运算符和模板的自动

c++ - 整数和 float 转换

c++ - 如何在 cout 语句中调用 void 函数?

sql - 为什么我会收到 "[SQL0802] Data conversion of data mapping error"异常?

ruby-on-rails - Rails 应用程序中数据对话的最佳实践