我无法理解为什么我们必须为文本添加"a"+randomtext.Next(0,26)
buffer[i] = (char)('a' + random.Next(0, 26));
与
buffer[i] = (char)( random.Next(0, 26));
答案 0 :(得分:2)
这样您就拥有了字母表中的所有字母。
当您选择一个介于0到25之间的数字并将其转换为char时,您将在ASCII-Table中得到各种符号。
因此,您将'a'添加为int(值是97),使其实际上从ascii表中的正确位置开始。
所以可以说您随机4。
此行
(char)('a' + random.Next(0, 26));
将是
(char) ('a' + 4)
(char) (97 + 4)
(char) (101) => e
答案 1 :(得分:1)
如果不添加'a',则会创建一个无法打印的字符。 值“ a” +随机值可为您提供可打印的字符
您可以在以下链接中查看ASCII值:http://www.asciitable.com/mobile/
答案 2 :(得分:0)
ASCII文本编码使用字节的低7位来编码字符。并非所有这些字符都是可见的/可打印的(例如空格,制表符,换行符,文本结尾,传输结尾等)。
小写字母编码为值0x61('a')至0x7a('z')。通过在您的随机值上加上“ a”,您可以保证获得小写字母之一。否则,您只会得到不可打印的字符。
答案 3 :(得分:0)
很明显,此代码re 118n存在问题,但现在暂时忽略它……
为什么要添加“ a”的简单答案是更改放入缓冲区的值的范围。
可以通过简单地调整对random.Next(97,123)等的调用中的两个值来实现相同的结果,但是为了使代码易于理解,添加“ a”使其更明显地被接受值范围是编码器要添加到缓冲区的值。