Comprar variables por funciуn
#1

Necesito saber el mйtodo de comprar una variable de tipo entero si es Hexadecimal o Entero puro, por ejemplo una funciуn que retorne 1 si es Hexadecimal y 0 si es Entero, pero.. necesito comprarlo desde una variable (no tipo string) de tipo entero.

Un Ejemplo:
Код:
0xFFFFFF00 = Hexadecimal
-1203495 = Entero
Pero que esto estй en un valor tipo entero.
Код:
new variable = 0xFFFFFF00;
new variable = -1203495;
їCual serнa el mйtodo?
Reply
#2

No creo que haya una forma viable, ya que son iguales al final.
Reply
#3

Creo que estas un poco confundido sobre que es hexadecimal y entero. En tiempo de ejecuciуn no hay diferencias entre una y otra, ya que son diferentes nombres de representar un determinado valor que es con lo que trabaja una computadora. La ъnica for a es pasarlo a cadena, pero en tiempo de ejecuciуn no se puede usando el valor, puesto que uno es en base 10 y el otro en base 16, pero lo ъnico que sabe la maquina es que vale x
Reply
#4

Quote:
Originally Posted by spell
Посмотреть сообщение
Creo que estas un poco confundido sobre que es hexadecimal y entero. En tiempo de ejecuciуn no hay diferencias entre una y otra, ya que son diferentes nombres de representar un determinado valor que es con lo que trabaja una computadora. La ъnica for a es pasarlo a cadena, pero en tiempo de ejecuciуn no se puede usando el valor, puesto que uno es en base 10 y el otro en base 16, pero lo ъnico que sabe la maquina es que vale x
ya ya, yo se que es un hexadecimal, pero lo que quiero hacer exactamente es convertir un color hexadecimal a decimal (dirбs es lo mismo si no que usa base 16) es decir, que si el nъmero estб en base 16 lo convierta a base 10 (normal) y si estб en base 10 no haga nada, es la razуn por la que necesito la verificaciуn o que me diga alguna otra tйcnica de hacer eso.
Reply
#5

pawn Код:
// [ DEVELOPMENT GAMEMODE ]

// INCLUDES:

#include <a_samp>
#include <sscanf2>

// DEFINES:

// GENERAL:

#define HEX_VALUE "0xFFFFFFFF"
#define INTEGER_VALUE -1

// FUNCTIONS:

#define strcpy(%0,%1,%2) strcat((%0[0] = '\0', %0), %1, %2)

// MAIN:

main()
{
    print("Development Mode: color_hex_int.amx");

    printf("%s to integer: %i", HEX_VALUE, HexToInt(HEX_VALUE));
    printf("%d to hexadecimal: %s", INTEGER_VALUE, IntToHex(INTEGER_VALUE));

    new string[11], answer[12];
    strcpy(string, HEX_VALUE, 11);
    answer = (IsHexOrInt(string)) ? ("Hexadecimal") : ("Integer");
    printf("Is %s an integer or a hexadecimal value? %s.", string, answer);

    format(string, sizeof(string), "%d", INTEGER_VALUE);
    answer = (IsHexOrInt(string)) ? ("Hexadecimal") : ("Integer");
    printf("Is %s an integer or a hexadecimal value? %s.", string, answer);
}

// CALLBACKS:

public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

// FUNCTIONS:

stock HexToInt(hex[])
{
    new int;
    sscanf(hex, "x", int);
    return int;
}

stock IntToHex(int)
{
    new string[11];
    format(string, sizeof(string), "0x%06xFF", int >>> 8);
    return string;
}

stock IsNumeric(const string[]) return !sscanf(string, "{d}");

stock IsHexOrInt(hex[])
{
    if(IsNumeric(hex)) return false;
    return true;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)