En primer Lugar feliz Año a Todos...
Estoy adaptando un codigo de c# a c++ y me a surgido un problema con el valor de una variable al ejecutar una funcion recursiva..
la funcion es la siguiente
Código:
Código:
main { ..... recursiva(2513169434916L, 0, 1, 14, 2513169509823); } void recursiva(long long Z, byte P, byte H, byte X, long long K) { long long int num = 7L << (int)(3 * P); for (byte b = P; b < X; b += 1) { for (short num2 = 1; num2 >= 0; num2 -= 1) { long long num3 = (Z & ~num) | 1L << (int)((short)(b * 3) + num2); if (P < H) { recursiva(num3, b + 1, H + 1, X, K); } } num <<= 3; } }
La variable que me da problemas es num3
sus valorese deberian ser sucesivamente
2513169509823
2513169434914
2513169434898
2513169434770
2513169433746
2513169425554
2513169360018
2513168835730
2513164641426
2513131086994
2512862651538
hasta aqui bien pero el siguiente en vez de
2510715167890
da -1840700270
En el codigo en c# original el tipo de variable num3 es long (64bites) yo lo he adaptado a long long e incluso a long long int pero sigue igual
Alguna Idea Gracias...