Aritmetica di dimensioni arbitrariamente dimensionate (e firmness) in C ++ - Come può essere fatto genericamente in fase di esecuzione?

0

Come posso gestire in modo efficiente interi di dimensioni e significatività sconosciute in varie operazioni aritmetiche in C ++? (per una macchina virtuale).

Sto memorizzando il programma per la macchina virtuale in una stringa di byte non elaborati ( unsigned char* ) ed estraendo gli operandi interi dalla dimensione specificata dalla direttiva info sui tipi che li precede direttamente nel programma. Le istruzioni sono memorizzate nel seguente formato e la mia macchina virtuale le esegue nel seguente modo:

DO_ARITH_INSTRUCTION (enum_t) - > OPERAND_INFO (signedness, size, enum_t) - > OPERAND1 ( x bytes) - > OPERAND2 ( x byte) .... < .rest del programma >.

Per aiutare a visualizzare questo:

La mia domanda è: come posso gestire le operazioni aritmetiche sugli operandi variabili in fase di esecuzione, in modo generico, senza gestire (hardcoding per) ogni combinazione di operazioni di signnessing delle dimensioni. Ad esempio, potrei trasmettere questi numeri interi in un modo generico, come per il valore enum di informazioni sul tipo che li precede direttamente?

Mi dispiace che questa domanda non sia chiara, ma non posso essere più specifico.

    
posta SolaGratia 11.04.2016 - 16:24
fonte

0 risposte