c++ - 将一串数字转换为二进制

标签 c++ string binary

如果字符串是“8123”,我首先将字符串数字转换为整数形式 8123,然后将该数字发送到将其转换为二进制的函数。我得到了与 unsigned long long 一样大的数字来工作,但是一旦通过了,输出就会错误。有没有办法通过查看每个数字来转换为二进制。 即查找 3、2、1 和 8 来转换为二进制。

所以不要采用字符串“9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999” 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 9999999”并将其转换为数字,有没有办法查看该字符串中的每个字符并将其转换为二进制?

非常感谢任何建议

最佳答案

伪代码:

string binary_string = ""
#an example
number = 81

while (number != 0)
    #append the string casted value of the remainder of (number / 2) 
    #to the front of binary_string
    binary_string = str(number % 2) + binary_string
    number = number / 2

例如81:

binary_string = str(81 % 2) + binary_string = str(1) + ""= "1"

数量 = 81/2 = 40

binary_string = str(40 % 2) + binary_string = str(0) + "1"= "01"

数量 = 40/2 = 20

binary_string = str(20 % 2) + binary_string = str(0) + "01"= "001"

数量 = 20/2 = 10

二进制字符串 = str(10 % 2) + 二进制字符串 = str(0) + "001"= "0001"

数字 = 10/2 = 5

binary_string = str(5 % 2) + binary_string = str(1) + "0001"= "10001"

数字 = 5/2 = 2

binary_string = str(2 % 2) + binary_string = str(0) + "10001"= "010001"

数字 = 2/2 = 1

二进制字符串 = str(1 % 2) + 二进制字符串 = str(1) + "010001"= "1010001"

81 ->“1010001”

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

相关文章:

c - 按顺序插入字符串数组

C# 二进制序列化

Java 二进制补码转整数

c++ - 数组结构和结构数组 - 性能差异

c++ - 将 mt19937 与 random_device 作为静态类成员一起使用时出错

java - 如何在 Java 中将大字符串转换为整数?

java - 努力正确格式化字符串

javascript - 在 Node.js 中,如何在不添加字节的情况下更改(覆盖)二进制文件中的字节

c++ - 使用头文件 : Undefined symbols for architecture x86_64 编译 C++ 程序时出错

c++ - 可变参数模板对象乘法