gpt4 book ai didi

c# - 我不知道为什么我在 temp 的索引 13 处得到 "0"

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:47 25 4
gpt4 key购买 nike

我正在尝试将 ini 字符串重新排列为 temp,外循环用于 temp 中的字符数,内循环用于查找PC2_table 中的索引号并将字符 ini[j] 附加到 temp,一切正常,但我不知道为什么我'我在索引 13 处什么也得不到。

string ini = "000100010000110011110100001001101001001110101101";
Console.WriteLine(ini.Length + " " +ini[0]);
int[] PC2_table = { 13 , 16 , 10 , 23 , 0, 4,
2 , 27 , 14 , 5 , 20, 9,
22 , 18 , 11 , 3 , 25, 7,
15 , 6 , 26 , 19 , 12, 1,
40 , 51 , 30 , 36 , 46, 54,
29 , 39 , 50 , 44 , 32, 47,
43 , 48 , 38 , 55 , 33, 52,
45 , 41 , 49 , 35 , 28, 31};

ini = " " + ini; // because PC2 table main indexing 1 sy hai
string temp = null;
for (int i = 0; i < 56; i++)
{
for (int j = 0; j < PC2_table.Length; j++)
{
if(PC2_table[j] == i)
{
Console.WriteLine(i + " " +j + " " + ini[j] );
temp += ini[j];
break;
}
}
}
Console.WriteLine(temp);

最佳答案

i = 13 处,当 j = 0 时,发生的情况是:

PC2_table[j] = PC2_table[0] = 13

并且i13,因此您进入if block :

if(PC2_table[j] == i){ //enters
}

但是:

ini[j] = ini[0] = " ";

是一个空格,因为:

string ini = "000100010000110011110100001001101001001110101101";
...
ini = " " + ini; //note the addition of " " in front of original ini

请注意,现在 ini 是:

" 000100010000110011110100001001101001001110101101" //the first element at index [0] is " "

而你这样做:

temp += ini[j]; //"1000001100110" + " " = "1000001100110 " //additional space

因此,您在第 13 个索引中添加了您的空间:

关于c# - 我不知道为什么我在 temp 的索引 13 处得到 "0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36574473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com