Ĺadny brzuch
Witam
Potrzebuję zamienić zwykłą liczbę dziesiętną na 16-bitową. Jak to zrobić? Podam przykład, podaję w zmiennej x liczbę 5, a otrzymuję w zmiennej y= 0000 0000 0000 0101, lub -6 = 1111 1111 1111 1111 1101. Potrzebuję to zrobić w Delphi (7), lub w języku C. Oraz drugie pytanie, jak zrobić to na odwrót? Tzn. podaję 16bitową liczbę, a podaje mi dziesiętną?
Z góry wielkie dzięki :)
Z tego co widzę to próbujesz zamienić liczbę w systemie dziesiętnym na liczbę w systemie binarnym (dwójkowym) zapisaną na szesnastu bitach. Poszukaj na google algorytmów do konwersji liczb z systemu dziesiętnego na binarny, algorytm jest banalnie prosty miałem to w pierwszej klasie technikum i w necie tego pełno jest.
Może to: http://www.cplusplus...tdlib/itoa.html
Nie wiem jednak czy jest to w C :)
to jest akurat wlasnie biblioteka C
Z tego co widzę to próbujesz zamienić liczbę w systemie dziesiętnym na liczbę w systemie binarnym (dwójkowym) zapisaną na szesnastu bitach. Poszukaj na google algorytmów do konwersji liczb z systemu dziesiętnego na binarny, algorytm jest banalnie prosty miałem to w pierwszej klasie technikum i w necie tego pełno jest.
No właśnie mam to w szkole, ale zamienić liczbę np. -35502 to trochę zajmuje...
Może to: http://www.cplusplus...tdlib/itoa.html
Nie wiem jednak czy jest to w C :)
Coś mi nie działa :( Wpisuję liczbę, wciskam enter i program się wyłącza... Próbowałem dać getch();, ale przy kompilacji wyskakuje jakiś błąd... :(
bo i program sie ma wylaczyc po wypisaniu wyniku..
ja skopiowalem i mi wszystko dziala..
zapewne uzywasz Dev-C++ - wpisz system("PAUSE"); na koniec programu
aha i w pierwszym poscie masz blad:
-6 to binarnie 1111 1111 1111 1111 1010, a nie 1111 1111 1111 1111 1101
wg U2 oczywiscie, chyba ze stosujesz jakas inna notacje (ale ta jest powszechnie uzywana)
Użytkownik fernandez edytował ten post 10 grudzień 2008, 14:06
bo i program sie ma wylaczyc po wypisaniu wyniku..
ja skopiowalem i mi wszystko dziala..
zapewne uzywasz Dev-C++ - wpisz system("PAUSE"); na koniec programu
aha i w pierwszym poscie masz blad:
-6 to binarnie 1111 1111 1111 1111 1010, a nie 1111 1111 1111 1111 1101
wg U2 oczywiscie, chyba ze stosujesz jakas inna notacje (ale ta jest powszechnie uzywana)
Albo getch(), dodając #include <stdlib.h>
bo i program sie ma wylaczyc po wypisaniu wyniku..
ja skopiowalem i mi wszystko dziala..
zapewne uzywasz Dev-C++ - wpisz system("PAUSE"); na koniec programu
aha i w pierwszym poscie masz blad:
-6 to binarnie 1111 1111 1111 1111 1010, a nie 1111 1111 1111 1111 1101
wg U2 oczywiscie, chyba ze stosujesz jakas inna notacje (ale ta jest powszechnie uzywana)
Sorki, mój błąd :). Pomyliła mi się liczba...
Albo getch(), dodając #include <stdlib.h>
Rzeczywiście :). Gdyby ktoś chciał, to podaję kod C:
#include<stdio.h> #include<conio.h> #include<stdlib.h> void main () { int i; char buffer [33]; clrscr(); printf ("Wprowadz liczbe: "); scanf ("%d",&i); itoa (i,buffer,10); printf ("Dec: %s\n",buffer); itoa (i,buffer,16); printf ("Hex: %s\n",buffer); itoa (i,buffer,2); printf ("Bin: %s\n",buffer); getch(); }
A jak to będzie w Delphi? :)
Użytkownik loginek0 edytował ten post 10 grudzień 2008, 20:28
Szczerze to nie wiem o co kaman. Strzelam, że chcesz zamienić system z dziesiętnego na szesnastkowy, a nie 16 bitowy xD Na hex' z int zrobisz za pomocą IntToHex() w SysUtils. Ogólnie to F1 polecam w delphi ;]
w sumie można tą operacje wykonać dzieląc całkowicie liczbę przez 16 i biorąc resztę ;) i tak liczby od 0-9 są liczbali od 0-9 a od 10 do 16 są po kolei A,B,C,D,E,F :) tylko potem to trzeba odczytać od tyłu ;) w sumie tym sposobem można zamieniać na dwójkowy czy ósemkowy :)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Potrzebuję zamienić zwykłą liczbę dziesiętną na 16-bitową. Jak to zrobić? Podam przykład, podaję w zmiennej x liczbę 5, a otrzymuję w zmiennej y= 0000 0000 0000 0101, lub -6 = 1111 1111 1111 1111 1101. Potrzebuję to zrobić w Delphi (7), lub w języku C. Oraz drugie pytanie, jak zrobić to na odwrót? Tzn. podaję 16bitową liczbę, a podaje mi dziesiętną?
Z góry wielkie dzięki :)
Z tego co widzę to próbujesz zamienić liczbę w systemie dziesiętnym na liczbę w systemie binarnym (dwójkowym) zapisaną na szesnastu bitach. Poszukaj na google algorytmów do konwersji liczb z systemu dziesiętnego na binarny, algorytm jest banalnie prosty miałem to w pierwszej klasie technikum i w necie tego pełno jest.
Może to: http://www.cplusplus...tdlib/itoa.html
Nie wiem jednak czy jest to w C :)
to jest akurat wlasnie biblioteka C
Z tego co widzę to próbujesz zamienić liczbę w systemie dziesiętnym na liczbę w systemie binarnym (dwójkowym) zapisaną na szesnastu bitach. Poszukaj na google algorytmów do konwersji liczb z systemu dziesiętnego na binarny, algorytm jest banalnie prosty miałem to w pierwszej klasie technikum i w necie tego pełno jest.
No właśnie mam to w szkole, ale zamienić liczbę np. -35502 to trochę zajmuje...
Może to: http://www.cplusplus...tdlib/itoa.html
Nie wiem jednak czy jest to w C :)
Coś mi nie działa :( Wpisuję liczbę, wciskam enter i program się wyłącza... Próbowałem dać getch();, ale przy kompilacji wyskakuje jakiś błąd... :(
bo i program sie ma wylaczyc po wypisaniu wyniku..
ja skopiowalem i mi wszystko dziala..
zapewne uzywasz Dev-C++ - wpisz system("PAUSE"); na koniec programu
aha i w pierwszym poscie masz blad:
-6 to binarnie 1111 1111 1111 1111 1010, a nie 1111 1111 1111 1111 1101
wg U2 oczywiscie, chyba ze stosujesz jakas inna notacje (ale ta jest powszechnie uzywana)
Użytkownik fernandez edytował ten post 10 grudzień 2008, 14:06
bo i program sie ma wylaczyc po wypisaniu wyniku..
ja skopiowalem i mi wszystko dziala..
zapewne uzywasz Dev-C++ - wpisz system("PAUSE"); na koniec programu
aha i w pierwszym poscie masz blad:
-6 to binarnie 1111 1111 1111 1111 1010, a nie 1111 1111 1111 1111 1101
wg U2 oczywiscie, chyba ze stosujesz jakas inna notacje (ale ta jest powszechnie uzywana)
Albo getch(), dodając #include <stdlib.h>
bo i program sie ma wylaczyc po wypisaniu wyniku..
ja skopiowalem i mi wszystko dziala..
zapewne uzywasz Dev-C++ - wpisz system("PAUSE"); na koniec programu
aha i w pierwszym poscie masz blad:
-6 to binarnie 1111 1111 1111 1111 1010, a nie 1111 1111 1111 1111 1101
wg U2 oczywiscie, chyba ze stosujesz jakas inna notacje (ale ta jest powszechnie uzywana)
Sorki, mój błąd :). Pomyliła mi się liczba...
Albo getch(), dodając #include <stdlib.h>
Rzeczywiście :). Gdyby ktoś chciał, to podaję kod C:
#include<stdio.h> #include<conio.h> #include<stdlib.h> void main () { int i; char buffer [33]; clrscr(); printf ("Wprowadz liczbe: "); scanf ("%d",&i); itoa (i,buffer,10); printf ("Dec: %s\n",buffer); itoa (i,buffer,16); printf ("Hex: %s\n",buffer); itoa (i,buffer,2); printf ("Bin: %s\n",buffer); getch(); }
A jak to będzie w Delphi? :)
Użytkownik loginek0 edytował ten post 10 grudzień 2008, 20:28
Szczerze to nie wiem o co kaman. Strzelam, że chcesz zamienić system z dziesiętnego na szesnastkowy, a nie 16 bitowy xD Na hex' z int zrobisz za pomocą IntToHex() w SysUtils. Ogólnie to F1 polecam w delphi ;]
w sumie można tą operacje wykonać dzieląc całkowicie liczbę przez 16 i biorąc resztę ;) i tak liczby od 0-9 są liczbali od 0-9 a od 10 do 16 są po kolei A,B,C,D,E,F :) tylko potem to trzeba odczytać od tyłu ;) w sumie tym sposobem można zamieniać na dwójkowy czy ósemkowy :)