120 MB hány kbyte? Mit rontottam el?
Most kezdtem el hobbiból programozni, Turbo Pascalban szeretném megírni a programot, hogy kiírassam kilobyteban és bájtban is. A programot véleményem szerint jól megírtam, de elég fura számokat hoz ki, mit rontottam el ? programon:
program feladathuszonnegy;
uses crt;
var
megabyte: integer;
kilobyte: integer;
bajt: integer;
begin
clrscr;
megabyte:=120;
kilobyte:=megabyte*1024;
bajt:=((megabyte*1024)*1024);
Writeln('120 megabyte:=', kilobyte, ' kilobyte');
Writeln('120 megabyte:=',bajt,' bájt');
end.
Úgy érzem hogy valamit talán a változók típusának a deklarálásánál rontottam el. De mit?
-8196-ot hoz ki a példa. Ha lecseréled az Integer-t longint-re, akkor jó lesz.
"In such cases where the compiler used a 16-bit integer type, 32-bit integers would usually be expressed by the long or longint data type."
extra:
kilo és mega 10-es számrendszer, tehát 1000 és nem 1024.
kibi és mebi 2-es számrendszer, ott már valóban 1024 a váltószám.
A másik hibád hogy a writeline-ba is a változót kellene kiírnod és nem azt hogy '120 megabyte'. Mert ha előtte megváltoztatod a számot és 5-öt írsz be, akkor azt fogja kiírni hogy: '120 megabyte:=' [5 megabyte értéke]..."
Helyes:
Writeln(megabyte,'megabyte=', kilobyte, ' kilobyte');
Az pedig hogy mega vagy mebi, kilo vagy kibi már csak értelmezés kérdése. Egyelőre még 100 emberből 99-nek fogalma sincs az új prefixumokról. Jogos, csak nem ez a program fő hibája.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!