Zamiana z systemu dziesiętnego na U2 w C

0

Witam,
Czy mógłby ktoś pomóc ogarnąć temat? Muszę napisać program zamieniający liczby z pliku tekstowego z systemu dziesiętnego na U2 w C. W C jestem totalnie zielony..

0

Ale co chcesz osiągnąć? Wszystkie obecne architektury używają U2, więc wystarczy wczytać te liczby jako liczby.

0
kq napisał(a):

Ale co chcesz osiągnąć? Wszystkie obecne architektury używają U2, więc wystarczy wczytać te liczby jako liczby.

No muszę mieć osobny program który przelicza liczby z dziesiątego na u2 napisany w C. :/

0

Podaj przykładowe dane wejściowe i wyjściowe, bo to o czym piszesz nie ma sensu

0

wiesz ze masz cos takiego jak systemy liczbowe (dziesietny, dwojkowy, osemkowy itd.) oraz masz (poprawcie mnie jak zle nazwalem) reprezentacje liczb (U2, U1 itd.)?

Jedno na drugie nie mozesz zmienic. To jakbys z jablek chcial zrobic gruszki

0
int main(void)
{
    int a;
    scanf("%d", &a);
}

Tutaj a jest już trzymane w U2 (pomijając jakieś bardzo nietypowe architektury)

1

OP na wejściu dostaje ciąg binarny (czyli ciąg znaków) jednego systemu i ma przerobić go na inny. Tak obstawiam.

0

Nie nie liczę na gotowca tylko proszę o pomoc, bo zatrzymałem się w pewnym momencie. A więc tak. Muszę napisać program w języku ANSI C umożliwiający zamianę liczb całkowitych zapisanych w systemie dziesiętnym na ich kod U2. Musi on zasysać dane z pliku tekstowego, pobrać wszystkie liczby całkowite i wypisać na ekranie ich kody U2 na 16 i 32 bitach.

Mam na razie coś takiego, ale coś pochrzaniłem:

#include <stdio.h>
 

int liczba;

int main()
{
	FILE *plik = fopen("liczby_testowe.txt", "r");
	printf("Liczby zamienione na U2: \n");
	fscanf(plik, "%d", &liczba);
	int i=0,j, tab[100];
	if(liczba == 0)
 {
	 printf("0");
 }
 if (liczba != 0){
	 while(liczba>0)
 {
     tab[i++]=liczba%2;
     liczba=liczba/2;
 }
 }
for(j=i-1; j>=0; j--)
  
 {
  printf("%d ",tab[j]); 
 }
 printf("\n");
 fclose(plik);
 return 0;
 }

Proszę o pomoc, bo w C jestem zielony..
Więc jak widać mam kod umożliwiający zamianę liczb całkowitych na system binarny ( tylko problem z liczbami ujemnymi )..
A no i problem z zasysaniem liczb z pliku .. I nie wiem jak zrobić zeby przekształcało na 16 i 32 bity - pewnie pętla?

0

ale zaraz zaraz Ty mylisz pojecia. Przeczytaj znowu jeszcze raz moj post. To co piszesz to nie ma sensu i to jest prosta zmiana z systemu dziesietnego na dwojkowy

https://www.programmingsimplified.com/c/source-code/c-program-convert-decimal-to-binary

1

@straż łączy nas pasja:

#include <stdio.h>
#include <stdbool.h>

void print2_helper(int x) {
  bool isodd = x%2;
  x /= 2;
  if (x) print2_helper(x);
  putchar('0' + isodd);
}

void print2(int x) {
  printf("Decimal:%d\tBinary:", x);
  if (x < 0) putchar('-');
  print2_helper(x);
  putchar('\n');
}

int main(void){
  print2(0);
  print2(1);
  print2(-1);
  print2(2);
  print2(-2);
  print2(INT_MAX);
  print2(INT_MIN);
  return 0;
}

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