RTV forum PL | NewsGroups PL

Jak zapisać datę z rokiem powyżej 2107 w asemblerze konwersja na hex?

Rok w asm

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zapisać datę z rokiem powyżej 2107 w asemblerze konwersja na hex?

Goto page 1, 2  Next

Czaq
Guest

Sun Feb 01, 2009 3:41 pm   



Witam,

Może pytanie trochę NTG, ale wie ktoś jak się zapisuje rok w dacie większy
niż 2107 w asm (hex)?

Pozdrawiam
czaq

Waldemar Krzok
Guest

Sun Feb 01, 2009 3:47 pm   



Czaq wrote:

Quote:
Witam,

Może pytanie trochę NTG, ale wie ktoś jak się zapisuje rok w dacie większy
niż 2107 w asm (hex)?

a dlaczemu 2107? To jakaś magiczna data?
2107 to 83Bh, 2108 to 83Ch. Problem zaczyna sie dopiero od 65535, ale do
tego czasu 16 bitowe procesory chyba beda historia.

Waldek

Czaq
Guest

Sun Feb 01, 2009 3:51 pm   



Użytkownik "Waldemar Krzok" <waldemar@zedat.fu-berlin.de> napisał

Quote:
a dlaczemu 2107? To jakaś magiczna data?
2107 to 83Bh, 2108 to 83Ch. Problem zaczyna sie
dopiero od 65535, ale do
tego czasu 16 bitowe procesory chyba beda historia.

no właśnie, tak patrze i widzę, że Win XP nie pozwoli ustawić roku w
systemie wyższego niż ten 2107, więc jak to zapisać w asm? Chodzi mi o cały
zapis roku, miesiąca i dnia, da się zmieścić to jakiś w 16 bitach?

Pozdrawiam
czaq

Andrzej Kmicic
Guest

Sun Feb 01, 2009 4:06 pm   



Czaq pisze:
Quote:

Użytkownik "Waldemar Krzok" <waldemar@zedat.fu-berlin.de> napisał

a dlaczemu 2107? To jakaś magiczna data?
2107 to 83Bh, 2108 to 83Ch. Problem zaczyna sie
dopiero od 65535, ale do
tego czasu 16 bitowe procesory chyba beda historia.

no właśnie, tak patrze i widzę, że Win XP nie pozwoli ustawić roku w
systemie wyższego niż ten 2107, więc jak to zapisać w asm? Chodzi mi o
cały zapis roku, miesiąca i dnia, da się zmieścić to jakiś w 16 bitach?


No kurcze chyba to proste, bez specjalnego pakowania
dzień zajmie 0-32 więc 5 bitów
miesiąc 0-16 wiec 4 bity
na lata zostaje Ci 7 bitów i
jak ci nie zależy na długowieczności masz te 128 lat jak w banku.
pozdr
Ak

Czaq
Guest

Sun Feb 01, 2009 4:14 pm   



Użytkownik "Andrzej Kmicic" <delphiws@poczta.onet.pl> napisał

Quote:
No kurcze chyba to proste, bez specjalnego pakowania

wiem, ale rozpatruje przypadki nietrywialne, a chyba że czegoś nie wiem -
dopiero się uczę.

Quote:
dzień zajmie 0-32 więc 5 bitów
miesiąc 0-16 wiec 4 bity
na lata zostaje Ci 7 bitów i
jak ci nie zależy na długowieczności masz te 128 lat jak w banku.

no ok, ale jeśli dostałbym zadanie, że mam zapisać rok 5199, to jak mam to
zrobić?

Już konkretnei chodzi mi o całą datę na 16 bitach.

Podobny problem mam z zapisem czasu: jak zapisać 6.31.59?

Wiem, że sekundy zajmują 5 bajtów (nie wiem natomiast dlaczego), minuty 6
(tymbardziej nie wiem dlaczego:( przecież sekund jest tyle co minut - i tu i
tu 60) a godzina zajmuje 5 bajtów.

Znalazłem też wzór:
Time=hours*2048+minutes*32+sec/2

wszystko ok jak mam sekundy parzyste, a jak sa nieparzyste to co mam zrobic?
Ani liczba mniejsza ani wikesza nie pasuje.

T.M.F.
Guest

Sun Feb 01, 2009 5:44 pm   



Quote:
dzień zajmie 0-32 więc 5 bitów
miesiąc 0-16 wiec 4 bity
na lata zostaje Ci 7 bitów i
jak ci nie zależy na długowieczności masz te 128 lat jak w banku.

no ok, ale jeśli dostałbym zadanie, że mam zapisać rok 5199, to jak mam
to zrobić?

A zdob to sobie jak chcesz. Myslisz, ze sa jakies odgorne wytyczne?

Quote:
Już konkretnei chodzi mi o całą datę na 16 bitach.

Podobny problem mam z zapisem czasu: jak zapisać 6.31.59?

Wiem, że sekundy zajmują 5 bajtów (nie wiem natomiast dlaczego), minuty
6 (tymbardziej nie wiem dlaczego:( przecież sekund jest tyle co minut -
i tu i tu 60) a godzina zajmuje 5 bajtów.

Dlatego, ze w starych systemach Microsoftu zapisywalo sie tylko parzyste
sekundy, czyli rozdzielczosc wynosila 2s, co pozwalalo na zaoszczedzenie
jednego bita. BTW, rozrozniasz bity od bajtow?

Quote:
Znalazłem też wzór:
Time=hours*2048+minutes*32+sec/2

wszystko ok jak mam sekundy parzyste, a jak sa nieparzyste to co mam
zrobic? Ani liczba mniejsza ani wikesza nie pasuje.

Nic, to jest ograniczenie stosowanego formatu zapisu. Jak ci to nie
pasuje to zapisuj po swojemu, w czym problem?

Czaq
Guest

Sun Feb 01, 2009 5:46 pm   



Użytkownik "T.M.F." <tftancuz@nospam.mp.pl> napisał

Quote:
Jak ci to nie pasuje to zapisuj po swojemu, w czym problem?

w tym, że mam zapisać tak, jak podaje nauczyciel.

Podobne zresztą problemy napotkałem przy zabawach hexedytorem z plikami,
FATem itp.

Tam nie mogę zmieniać jak mi się podoba.

Tak, wiem, że 1 bajt=8 bitów, jakoś pokręciłem.

T.M.F.
Guest

Sun Feb 01, 2009 6:27 pm   



Quote:
Jak ci to nie pasuje to zapisuj po swojemu, w czym problem?

w tym, że mam zapisać tak, jak podaje nauczyciel.

Podobne zresztą problemy napotkałem przy zabawach hexedytorem z plikami,
FATem itp.

Tam nie mogę zmieniać jak mi się podoba.

Tak, wiem, że 1 bajt=8 bitów, jakoś pokręciłem.

Trzeba bylo od poczatku mowic, ze chodzi ci o zapis daty i czasu w FAT.
Tam jest ograniczenie rozdzielczosci czasu do 2s, wlasnie po to, zeby
czas dalo sie zapisac na 16-bitach. Gdybys chcial miec co do sekundy to
trzebaby poswiecic dodatkowy bit, co w tym przypadku przeklada sie na
caly dodatkowy bajt. Pewnie dlatego zrezygnowano z takiego pomyslu. W
efekcie jesli czas ma np. 57s to mozesz zapisac 56 albo 58, jak wolisz.

Czaq
Guest

Sun Feb 01, 2009 6:33 pm   



Użytkownik "T.M.F." <tftancuz@nospam.mp.pl> napisał

Quote:
efekcie jesli czas ma np. 57s to mozesz zapisac 56 albo 58, jak wolisz.

i będzie to poprawne?

A jak z rokiem większym niż 2107?

Czaq
Guest

Sun Feb 01, 2009 6:35 pm   



Użytkownik "T.M.F." <tftancuz@nospam.mp.pl> napisał

aha, i rozumiem więc, że windows nigdy nie pokaże we właściwościach
katalogu/pliku czasu gdzie sekundy będą nieparzyste?

Marcin Łukasik
Guest

Sun Feb 01, 2009 6:44 pm   



Czaq wrote:

Quote:
aha, i rozumiem więc, że windows nigdy nie pokaże we właściwościach
katalogu/pliku czasu gdzie sekundy będą nieparzyste?

Zdecyduj się o czym piszesz.
Windows i jego data to inna bajka, data w systemach plików to inna.
Systemy plików też są różne. FAT16, FAT32, NTFS, NFS, XFS, EXT, itd.
Jedne zapiszą dokładny czas, inne nie.
Dawniej oszczędzano bajtów, dziś gdy dyski mają już po terabajcie
pojemności mamy to gdzieś...
Co nie zmienia faktu, że rozdzielczość i tak wynosi 1s.

m.

--
Milea Wireless Communications, http://milea.pl
Anteny WiFi, UMTS, kable, zlacza, akcesoria.

``Be who you are and say what you feel, because those who mind don't
matter and those who matter don't mind.''

Czaq
Guest

Sun Feb 01, 2009 6:50 pm   



Użytkownik "Marcin Łukasik" <.marcin.@.milea.pl.> napisał

Quote:
Zdecyduj się o czym piszesz.

tak, przepraszam.

Ale w wkońcu zrozumiałem coś, czego nie rozumiałem od dawna a napewno
jeszcze duużo przede mnąWink

Andrzej Kmicic
Guest

Sun Feb 01, 2009 8:16 pm   



Czaq pisze:
Quote:

Użytkownik "T.M.F." <tftancuz@nospam.mp.pl> napisał

efekcie jesli czas ma np. 57s to mozesz zapisac 56 albo 58, jak wolisz.

i będzie to poprawne?

A jak z rokiem większym niż 2107?

heh Smile, w 2107 roku nas i FAT-u już nie będzie na 100% wiec nie ma się
co tym specjalnie przejmować.

Ja myslałem że meczysz jakiś micro-procesorek wiec nic nie stoi na
przeszkodzie aby format zapisu daty stworzyć własny i aby zmiescić się w
jakimś zakresie bitów.

pozdr
AK

J.F.
Guest

Sun Feb 01, 2009 8:22 pm   



On Sun, 1 Feb 2009 16:14:57 +0100, Czaq wrote:
Quote:
dzień zajmie 0-32 więc 5 bitów
miesiąc 0-16 wiec 4 bity
na lata zostaje Ci 7 bitów i
jak ci nie zależy na długowieczności masz te 128 lat jak w banku.

no ok, ale jeśli dostałbym zadanie, że mam zapisać rok 5199, to jak mam to
zrobić?

W ogolnosci jak chcesz :-)

Quote:
Już konkretnei chodzi mi o całą datę na 16 bitach.

musisz pamietac ze na 16 bitach mozna zakodowac tylko 65536 dni,
wiec data bedzie z przedzialu niecalych 200 lat.

Quote:
Podobny problem mam z zapisem czasu: jak zapisać 6.31.59?
Wiem, że sekundy zajmują 5 bajtów (nie wiem natomiast dlaczego), minuty 6
(tymbardziej nie wiem dlaczego:( przecież sekund jest tyle co minut - i tu i
tu 60) a godzina zajmuje 5 bajtów.

Masz chyba na mysli kodowanie daty pliku w MS-DOS/windows.
godzin jest 24 wiec potrzeba 5 bitow [z nadmiarem].
Minut jest 60, wiec trzeba 6 bitow. sekund jest 60, wiec trzeba 6
bitow. Razem 17 .. wiec trzeba z czegos zrezygnowac.
No to zaokraglamy do najblizszej parzystej sekundy.


A Unix ma to wszystko w d* i date/czas koduje jako ilosc sekund od
1.01.1970. Na 32 bitach ze znakiem.
W 2038 bylyby klopoty, ale wszyscy licza ze do tego czasu wszystkie 32
bitowe systemy zastapione zostana 64 bitowymi.


J.

Waldemar Krzok
Guest

Mon Feb 02, 2009 10:34 am   



Andrzej Kmicic schrieb:
Quote:
Czaq pisze:

Użytkownik "T.M.F." <tftancuz@nospam.mp.pl> napisał

efekcie jesli czas ma np. 57s to mozesz zapisac 56 albo 58, jak wolisz.

i będzie to poprawne?

A jak z rokiem większym niż 2107?

heh Smile, w 2107 roku nas i FAT-u już nie będzie na 100% wiec nie ma się
co tym specjalnie przejmować.

nas nie będzie, ale FAT pewnie ocaleje. Jak to było z tymi COBOLowymi
programami w latach 60 ub. wieku?

Quote:
Ja myslałem że meczysz jakiś micro-procesorek wiec nic nie stoi na
przeszkodzie aby format zapisu daty stworzyć własny i aby zmiescić się w
jakimś zakresie bitów.

no właśnie. W szkole powinni uczyć sposobów opisu problemu, wtedy z
rozwiązaniem go mniejszy problem ;-)

Waldek

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zapisać datę z rokiem powyżej 2107 w asemblerze konwersja na hex?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map