Daniele Rota Nodari
Цель вашего кода не очень ясна:
- Индексы i, j, k повторяются до некоторых значений, значение которых неизвестно (29, 2, 122)
- Индекс k итерируется в направлении 122, что никогда не будет допустимым индексом в result1, если только это не массив, но фактическая логика кода не может заполнить его достаточно, даже применяя решение Bryian Tan.
- Есть инструкции, которые извлекают шестнадцатеричные цифры из двух чисел, но позже объединяются вместе, поскольку они не были шестнадцатеричными.
- Позже код пытаются получить доступ по индексу к целому числу.
Вы должны лучше объяснить, что он должен/должен делать.
- Подумайте о замене магических чисел 29 и 122 локальными именованными константами.
- Подумайте о замене я петля и ф переменная с более простым циклом увеличения я по 2 единицы.
int f = 0;
for (i = 0; i <= 29; i++)
{
f++;
if (f == 2)
{
f = 0;
i++;
}
должен был стать
for (i = 0; i <= 29; i += 2)
{
На основе заполнения кода
temp_var3,
temp_var4,
temp_var5 и
temp_var6 переменные, я предполагаю, что вы хотите отобразить содержимое
Макудата[0] и
Макудата[1] в шестнадцатеричной форме.
Тем не менее, значение, присвоенное
результат1 это приведет к тому, что эти значения будут перекрываться из-за 10-ти факторов вместо 16-ти.
У меня есть одна гипотеза:
1 - Вы хотите шестнадцатеричное представление
Макудата[0] и
Макудата[1].
2 - Вы хотите, чтобы остаток от деления
результат1 около
к.
3 - Вы хотите получить какой-то другой результат, который недоступен только на основе предоставленного кода.
Корпус 1:
Изменить
temp_var3 = (temp_var & 0xF0) >> 4;
temp_var4 = (temp_var & 0x0F);
temp_var5 = (temp_var1 & 0xF0) >> 4;
temp_var6 = (temp_var1 & 0x0F);
result1 = ((temp_var3) * 1000) + ((temp_var4) * 100) + ((temp_var5) * 10) + ((temp_var6));
с
result1 = string.Format("{0:X2}{1:X2}", temp_var, temp_var1);
или
result1 = temp_var.ToString("X2") + temp_var1.ToString("X2");
Случай 2:
Изменить
dataGridView1.Rows[i].Cells[j].Value =result1[k];
к
dataGridView1.Rows[i].Cells[j].Value =result1 % k;