Advertisement
dusanrs

zadatak1_v3

Apr 19th, 2022
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4.  
  5.  
  6. void copyLEToLE(int broj, void* adresa_kopija);
  7. void copyLEToBE(int broj_LE, void* adresa_BE);
  8. int main(){
  9.  
  10.     int  adresa_kopija; // napravim neki podatak
  11.     int nina=18; // 18.12.2001.
  12.     copyLEToLE(nina,&adresa_kopija); // f-ja prima void* adresu bilo koju
  13.                                      // moze da kastuje u bilo koju adresu
  14.                                      // ne radi sa floatom  
  15.     printf("Prikaz broja sa prikazane adrese %d\n",adresa_kopija);
  16.  
  17.     int dusan=0x06012001;
  18.     int dusan_be;
  19.     copyLEToBE(dusan,&dusan_be);
  20.     printf("\nDusan u be %08x\n",dusan_be);
  21.  
  22.  
  23.     return 0;
  24. }
  25.  
  26.  
  27. void copyLEToLE(int broj, void* adresa_kopija){  // prosledjujem broj koji hocu da kopiram i adresu gde cu ga kopirati u LE formatu
  28.  
  29.     char *broj_kopija=(char*)&broj; //kastujem broj u char* i uzmem njegovu pocetnu adesu sa &
  30.     char *adresa_nova=(char*)adresa_kopija; //kastujem ovu void adresu u char da se mogu kretati batj po bajt
  31.     int i;  
  32.  
  33.     for(i=0;i<sizeof(int);i++){   //vrtim se u petlji koliko mi je velik taj podatak koji kopiram
  34.         *(adresa_nova+i)=*(broj_kopija+i); // dodajem bajt po bajt od broja na novu adresu
  35.     }
  36. }
  37.  
  38. void copyLEToBE(int broj_LE, void* adresa_BE){
  39.  
  40.     char* pom_broj=(char*)&broj_LE; // pomocni pokazivac za broj & da znam gde je pocetak tog broja  
  41.     char* pom_adresa=(char*)adresa_BE; // pomocni pokazivac za adresu
  42.  
  43.     int i;
  44.     for(i=0;i<sizeof(int);i++){
  45.         *(pom_adresa+i)=*(pom_broj+sizeof(int)-i-1); // zasto -1 ???                                            
  46.     }
  47.  
  48.  
  49. }
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement