使用'atoi()'将二进制字符串转换为整数

跳过NBS

我有一个二进制字符串,然后使用转换为整数atoi()当我这样做时,似乎会自动将二进制转换为十进制。问题在于所得的整数为负,并且与任何在线二进制至十进制转换器不一致。有什么问题atoi()吗?我应该使用其他功能吗?

码:

string myString = "01000101";
int x = atoi(myString.c_str());
cout << x;

谢谢

用户1942027

atoi不处理二进制数,它只是将它们解释为大十进制数。您的问题是它太高,并且由于将其解释为十进制数而导致整数溢出。

解决的办法是使用stoistol或者在C ++ 11中stoll添加到string称他们为

int i = std::stoi("01000101", nullptr, 2);
  • 返回值是转换后的int值。
  • 第一个参数是std::string您要转换的参数。
  • 第二个是size_t *它将保存第一个非数字字符的索引的位置。
  • 第三个是int,对应于将用于转换的基础。

有关功能的信息,请参见其cppreference页面


请注意,还有一些C ++ 11之前的函数具有几乎相同的名称,例如:strtol与C ++ 11相比stol
他们做不同的工作,基地太多,但他们不这样做的错误相同的方式处理(尤其是他们试图转换“你好”的字符串缺乏时没有转换可以在给定的字符串,在所有如进行)和你应该可能更喜欢C ++ 11版本

明确地说,将“ Hello”传递给strtolC ++ 11和C ++ 11stol都会导致:

  • strtol返回0并且没有给您任何方式将其识别为错误,
  • stol从C ++ 11抛出std::invalid_argument并表明出了点问题。

错误地将“ Hello”之类的内容解释为整数可能会导致错误,因此我认为应避免使用。

但是为了完整起见,也有指向其cppreference页面的链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中对字符串使用atoi函数

来自分类Dev

为什么将十进制转换为二进制的递归方法比使用,返回字符串的迭代方法要快?

来自分类Dev

使用JavaScript将二进制转换为文本

来自分类Dev

使用适当的填充将整数转换为二进制数组

来自分类Dev

如何使用Python将XML字符串转换为二进制形式?

来自分类Dev

使用递归将二进制数字的字符串转换为十进制数字...

来自分类Dev

如何使用记录将JSON字符串转换为二进制?Web.Contents + POST + Power Query

来自分类Dev

使用每个二进制数将二进制转换为数组

来自分类Dev

使用atoi / sprintf将整数转换为字符串

来自分类Dev

javascript:不使用按位运算就将二进制字符串转换为UInt32 big-endian

来自分类Dev

使用c ....中的字符串将十进制转换为二进制...陷入某些概念错误

来自分类Dev

使用ctypes将Python二进制浮点数转换为整数

来自分类Dev

不使用atoi()将字符添加为整数吗?

来自分类Dev

将十六进制字符串转换为二进制并使用netcat发送

来自分类Dev

为什么将十进制转换为二进制的递归方法比使用,返回字符串的迭代方法要快?

来自分类Dev

使用atoi将* argv []转换为int

来自分类Dev

使用atoi将char数组转换为int数组

来自分类Dev

使用awk将二进制数作为字符串存储在文本文件中,然后转换为十六进制

来自分类Dev

使用公式将文本转换为二进制

来自分类Dev

编写atoi将字符串转换为整数

来自分类Dev

使用递归将二进制数字的字符串转换为十进制数字...

来自分类Dev

使用递归将整数转换为二进制数

来自分类Dev

使用字符串将二进制转换为八进制

来自分类Dev

使用xxd将整数转换为二进制

来自分类Dev

javascript:不使用按位运算就将二进制字符串转换为UInt32 big-endian

来自分类Dev

使用老式方法将整数转换为二进制

来自分类Dev

Python 将二进制字符串转换为二进制整数

来自分类Dev

如何使用php和文件上传将图像转换为二进制字符串?

来自分类Dev

将字符串二进制转换为整数十进制

Related 相关文章

  1. 1

    如何在C ++中对字符串使用atoi函数

  2. 2

    为什么将十进制转换为二进制的递归方法比使用,返回字符串的迭代方法要快?

  3. 3

    使用JavaScript将二进制转换为文本

  4. 4

    使用适当的填充将整数转换为二进制数组

  5. 5

    如何使用Python将XML字符串转换为二进制形式?

  6. 6

    使用递归将二进制数字的字符串转换为十进制数字...

  7. 7

    如何使用记录将JSON字符串转换为二进制?Web.Contents + POST + Power Query

  8. 8

    使用每个二进制数将二进制转换为数组

  9. 9

    使用atoi / sprintf将整数转换为字符串

  10. 10

    javascript:不使用按位运算就将二进制字符串转换为UInt32 big-endian

  11. 11

    使用c ....中的字符串将十进制转换为二进制...陷入某些概念错误

  12. 12

    使用ctypes将Python二进制浮点数转换为整数

  13. 13

    不使用atoi()将字符添加为整数吗?

  14. 14

    将十六进制字符串转换为二进制并使用netcat发送

  15. 15

    为什么将十进制转换为二进制的递归方法比使用,返回字符串的迭代方法要快?

  16. 16

    使用atoi将* argv []转换为int

  17. 17

    使用atoi将char数组转换为int数组

  18. 18

    使用awk将二进制数作为字符串存储在文本文件中,然后转换为十六进制

  19. 19

    使用公式将文本转换为二进制

  20. 20

    编写atoi将字符串转换为整数

  21. 21

    使用递归将二进制数字的字符串转换为十进制数字...

  22. 22

    使用递归将整数转换为二进制数

  23. 23

    使用字符串将二进制转换为八进制

  24. 24

    使用xxd将整数转换为二进制

  25. 25

    javascript:不使用按位运算就将二进制字符串转换为UInt32 big-endian

  26. 26

    使用老式方法将整数转换为二进制

  27. 27

    Python 将二进制字符串转换为二进制整数

  28. 28

    如何使用php和文件上传将图像转换为二进制字符串?

  29. 29

    将字符串二进制转换为整数十进制

热门标签

归档