diff --git a/.DS_Store b/.DS_Store index e0d8cda..f2f8171 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/1_funzioni/readme b/1_funzioni/readme new file mode 100644 index 0000000..7e1f310 --- /dev/null +++ b/1_funzioni/readme @@ -0,0 +1,3 @@ +esegui calcola aggiungendo due numeri + +calcola 1 4 diff --git a/2.little_big_endian/check_architecture b/2.little_big_endian/check_architecture new file mode 100755 index 0000000..34edced Binary files /dev/null and b/2.little_big_endian/check_architecture differ diff --git a/2.little_big_endian/check_architecture.c b/2.little_big_endian/check_architecture.c new file mode 100644 index 0000000..2b23f43 --- /dev/null +++ b/2.little_big_endian/check_architecture.c @@ -0,0 +1,67 @@ +#include +#include + +typedef union { + short data_short; + char data_char[2]; + +} input_data; + + + + +int main (int index, char** data){ + + + + + if (index >2 || index == 1){ + fprintf(stdout,"More or less arguments expected\n"); + exit(-1); + }else{ + if ( *((*(data+1))+1) != 0 && *((*(data+1))+2) != 0 && *((*(data+1))+3) != 0 && *((*(data+1))+4) == 0){ + input_data data_union; + input_data data_union_inverted; + for (int i = 0;i<4;i++){ + if( ((*((*(data+1))+i) >= 48) && (*((*(data+1))+i) <=57) ) || ((*((*(data+1))+i) >= 97) && (*((*(data+1))+i) <=102) )){ + continue; + }else{ + fprintf(stdout,"Bad Formatted\n"); + exit(-2); + } + + } + char buf[3]; + for (int i = 0;i<2;i++){ + buf[0]= *((*(data+1))+(i*2)); + buf[1]= *((*(data+1))+(i*2)+1); + buf[2]= 0; + + sscanf (buf,"%hx",(short *)&(data_union.data_char[i])); + data_union_inverted.data_char[1-i] = data_union.data_char[i] ; + + + } + + + for (int i = 0;i<2;i++){ + fprintf(stdout,"0x%02x\n",data_union.data_char[i]); + } + + fprintf(stdout,"Big Endian %d\n",data_union.data_short); + fprintf(stdout,"Little Endian %d\n",data_union_inverted.data_short); + + + + + }else{ + fprintf(stdout,"Bad Input Lenght\n"); + } + + } + + + + +return 0; +} diff --git a/2.little_big_endian/my_architecture b/2.little_big_endian/my_architecture new file mode 100755 index 0000000..bff858d Binary files /dev/null and b/2.little_big_endian/my_architecture differ diff --git a/2.little_big_endian/my_architecture.c b/2.little_big_endian/my_architecture.c new file mode 100644 index 0000000..603d8f5 --- /dev/null +++ b/2.little_big_endian/my_architecture.c @@ -0,0 +1,21 @@ +#include +#include + + +int main (int index, char** in_data){ + + short data = 0x0102; + char* datacp = (char*)&data; + if (*datacp == 0x01 && *(datacp+1)==0x02){ + printf("Big Endian\n"); + }else{ + if(*datacp == 0x02 && *(datacp+1)==0x01){ + printf("Little Endian\n"); + }else{ + printf("Unknow\n"); + } + } + + + return 0; +} \ No newline at end of file diff --git a/2.little_big_endian/readme.txt b/2.little_big_endian/readme.txt new file mode 100644 index 0000000..e27e163 --- /dev/null +++ b/2.little_big_endian/readme.txt @@ -0,0 +1,3 @@ +utility_check _size mostra la grandezza in byte dei divers tipi di dato +check_architecture legge come parametro da lien di comando 4 cifre esadecimali e ne restituisce il valore in little e big endian +my_architecture mostra l'archiettura corrente \ No newline at end of file diff --git a/2.little_big_endian/utility_check_size b/2.little_big_endian/utility_check_size new file mode 100755 index 0000000..ded1fc0 Binary files /dev/null and b/2.little_big_endian/utility_check_size differ diff --git a/2.little_big_endian/utility_check_size.c b/2.little_big_endian/utility_check_size.c new file mode 100644 index 0000000..45cb0cf --- /dev/null +++ b/2.little_big_endian/utility_check_size.c @@ -0,0 +1,10 @@ +#include + +int main (int size, char** data){ +fprintf (stdout, "Char: %lu byte\n",sizeof(char)); +fprintf (stdout, "Short: %lu byte\n",sizeof(short)); +fprintf (stdout, "Int: %lu byte\n",sizeof(int)); +fprintf (stdout, "Long: %lu byte\n",sizeof(long)); +return 0; + +} diff --git a/da_vedere b/da_vedere new file mode 100644 index 0000000..c40d1d3 --- /dev/null +++ b/da_vedere @@ -0,0 +1,13 @@ +nel make file +@echo compilazione di $< in $@ + +FLAG1= -c + +FLAG2 = -o + + + +clear: + rm -f -- per esempio + +vedi union, esercizi stringa, file, little e bigendian, dati esadecimali. diff --git a/test/test b/test/test new file mode 100755 index 0000000..ea20455 Binary files /dev/null and b/test/test differ diff --git a/test/test.c b/test/test.c new file mode 100644 index 0000000..a79ae0a --- /dev/null +++ b/test/test.c @@ -0,0 +1,13 @@ +#include +#include + + +int main (int index, char** in_data){ + + char buf[50]; + fscanf(stdin,"%10[^\n]",buf); + fprintf(stdout,"%s",buf); + + + return 0; +} \ No newline at end of file