I have a problem with an issue and I can not resolve it. My problem is referent of how to enter these values and organizes them as the example below.
Create a program in C / C ++ reads a positive number n and prints, in all hexadecimal numbers with n nibbles. (1 nibble = 4 bits or 1/2 byte)
Additional Restrictions:
You can not work with numbers in decimal format and convert them to hexadecimal. The solution must adopt a vector to store the nibbles. The solution may be recursive or not.
Example 1:
MYCODETONOW:
#include<stdio.h>#include<stdlib.h>/*CrieumprogramaemC/C++lêumnúmeropositivoneimprime,emordemcrescente,todososnúmeroshexadecimaiscomnnibbles.(1nibble=4bitsou1⁄2byte)Restriçõesadicionais:1.Nãopodetrabalharcomnúmerosnoformatodecimaleconvertê-losparahexadecimal.3.Asoluçãodeveadotar,obrigatoriamente,umvetorparaarmazenarosnibbles.4.Asoluçãopodeserrecursivaounão.*/intmain(intargc,char*argv){unsignedshortintn=0;painel_quantidade_n(n);ordem_crescente();/*inthex=0xFF;printf("Valor inteiro: %i \n", hex);
printf("Valor hex: %x \n", hex);
printf("Valor hex (maiusculo): %X \n", hex);
printf("Valor hex (4 casas): %4x \n", hex);
printf("Valor hex (Completar com zeros): %04x \n", hex);*/
return 0;
}
int painel_quantidade_n(int n){
printf("DIGITE A QUANTIDADE DE NIBBLES:\n");
scanf("%d", &n);
if(n < 0){
printf("OPS ... VOCE DIGITOU: (%d) NIBBLES... TENTE COM UM NUMERO POSITIVO !\n\n", n);
n = 0;
painel_quantidade_n(n);
} else {
return n;
}
}
void ordem_crescente(){
int nibbles[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f};
int tam = (sizeof(nibbles) / sizeof(nibbles[0])), tmp = 0;
for (int i=0; i<tam; i++){
if(nibbles[i]>nibbles[i+1]){
tmp = nibbles[i+1];
nibbles[i+1] = nibbles[i];
nibbles[i] = tmp;
i = -1;
}
}
printf("\n*IMPRIME ORDEM CRESCENTE*\n");
for(int i=0; i<tam; i++){
printf("%04X\n", nibbles[i]);
}
}