C++ 如何找到字节的排列或组合?

C++ 如何找到字节的排列或组合?,c++,C++,一个字符(1字节)可以代表255个字符,但我怎么才能真正找到它呢 for (char c = " "; c <= "~"; c++) std::cout << c << std::endl; (char c=“”;c你的意思是什么 for (char c = " "; c <= "~"; c++) std::cout << c << std::endl; (char c=“”;c(回答评论) 8个0s和1s有256种不同的组合 这是

一个字符(1字节)可以代表255个字符,但我怎么才能真正找到它呢

for (char c = " "; c <= "~"; c++) std::cout << c << std::endl;
(char c=“”;c你的意思是什么

for (char c = " "; c <= "~"; c++) std::cout << c << std::endl;
(char c=“”;c(回答评论)
8个
0
s和
1
s有256种不同的组合

这是正确的,因为256=28。
您添加的每个数字都会使组合数加倍。

(回答注释)
8个
0
s和
1
s有256种不同的组合

这是正确的,因为256=28。

您添加的每个数字都会使组合数加倍。

在固定宽度的二进制数中,第一位有两个选择,第二位有两个选择,第三位有两个选择,依此类推。8位字节的组合总数为:

2*2*2*2*2*2*2*2*2=28=256


在固定宽度二进制数中,第一位有两种选择,第二位有两种选择,第三位有两种选择,依此类推。8位字节的组合总数为:

2*2*2*2*2*2*2*2*2=28=256


8位可以表示从二进制00000000到11111111的1和0的排列。就像3位十进制数字可以表示从十进制000到999的十进制数字(0-9)的排列一样

你只需开始计数:0,1,2,3,4,5,6,7,8,9,然后在达到最大数字后,你携带1,从0开始:…,8,9,10。对吗?然后继续这个过程,直到你用9填满所有数字:…,997,998,999

在二进制中也是一样的:0,1,然后从0,1,10开始,继续:10,11,100,101,110,111,1000,1001等等


只需从0到数字所能表示的最大值进行计数,即可获得所有排列。

8位可以表示从二进制00000000到11111111的1和0的排列。就像3位十进制数字可以表示从十进制000到999的十进制数(0-9)的排列一样

你只需开始计数:0,1,2,3,4,5,6,7,8,9,然后在达到最大数字后,你携带1,从0开始:…,8,9,10。对吗?然后继续这个过程,直到你用9填满所有数字:…,997,998,999

在二进制中也是一样的:0,1,然后从0,1,10开始,继续:10,11,100,101,110,111,1000,1001等等


从0到数字所能代表的最大值的简单计数,就可以得到所有的排列。

你的问题没有意义。请澄清。我指的是使用排列公式的方法的数量。你想看到所有可能的ASCII字符吗?我想找到以字节排列0和1的方法的数量。实际上是256不同的值,不是255。你的问题没有意义。请澄清。我的意思是使用排列公式的方法的数量。你想看到所有可能的ASCII字符吗?我想找到一些方法来排列字节中的0和1。它实际上是256个不同的值,而不是255。一般形式是数字的基数。一般形式是基数-对于数字,使用
std::isprint(c)
而不是猜测什么是可打印的,使用
std::isprint(c)
而不是猜测什么是可打印的。