Dopisanie zer na początku tablicy

0

Jak w C zaprogramować, aby do tablicy 16 elementowe gdy pierwsze kilka elementów w tablicy jest puste ma dopisać 0?
A gdy mam sytuację gdy z działań wychodzi np. 10101 to jak zaprogramować aby dopisało z przodu tyle zer aby liczba była 32 bitowa?

0
  1. Co to znaczy że elementy są puste? Niezainicjalizowane?
  2. Możesz zrobić to przesunięciami bitowymi
1

Tylko wspomnę, że w big endian 10101 == 00010101 == 00000000010101

0

Mam program który przelicza liczby dziesiętne na binarne. I jeden robi to że wpisuje 0 i 1 do tablicy, a 2 po prostu ja wypisuje. Dane wyjściowe muszą być 0rzedstawione na 16 i 32 bitach. Mało pisałem w C więc nie wiem. Rozumiecie? Pomożecie?

0
Brunatny Terrorysta napisał(a):

Rozumiecie? Pomożecie?

No nie wiem, przede wszystkim pokaż co tam już masz.

0

A więc tak. Program ma liczbę dziesiętną przekształcać na liczbę w U2 na 16 i 32 bitach. Mam coś takiego:

#include <stdio.h>
 
int main()
{
  int n, c, k, q, e, m;
 
  printf("Wpisz liczbę dziesiętną: ");
  scanf("%d", &n);

  printf("Wpisz liczbę dziesiętną ponownie: ");
  scanf("%d", &m);
 
  printf("%d w systemie U2 na 16 bitach to: ", n);


  for (c = 16; c >= 0; c--)
  {
    k = n >> c;
 
    if (k & 1)
      printf("1");
    else
      printf("0");
  }

  printf("\n");
   printf("%d w systemie U2 na 32 bitach to: ", n);


  for (q = 32; q >= 0; q--)
  {
    e = m >> q;
 
    if (e & 1)
      printf("1");
    else
      printf("0");
  }

  printf("\n");
  return 0;
}

Proszę się nie śmiać - prawie wcale nie implementowałem niczego w C. Moje pytanie brzmi. Dlaczego gdy wpiszę 3 to na początku pojawia się 1 a nie 0? Da się to jakoś skrócić ten kod? I jak przerobić kod, aby przyjmowało liczby dodatnie. Przy liczbie dodatniej w U2, powinno wykonać:

  1. Wyznaczamy zapis dwójkowy liczby przeciwnej (czyli dodatniej).
  2. Otrzymany kod dwójkowy uzupełniamy w miarę potrzeb do rozmiaru formatu U2 - w naszym przypadku do 16 i 32 bitów.
  3. Dokonać negacji wszystkich bitów zapisu liczby U2.
  4. Do wyniku dodać 1.
    Pomoże ktoś proszę?

1 użytkowników online, w tym zalogowanych: 0, gości: 1