-
1. Data: 2009-11-13 20:32:59
Temat: Przekroczenie wartości na liczbę
Od: B <...@...pl>
Witam,
Mam taką sytuację że w danych pomiarowych których wartości powinny
znajdować się między 0 a 0xffff pojawiają się liczby ujemne. Wydaje mi
się, że w zmiennej jest jeszcze zaszyty bit znaku, który jest zazwyczaj
jest 0 ale gdy pomiar przekroczy dozwolony zakres to ten bit jest
również nadpisywany. Jak wydobyć z takiej liczy ujemnej prawdziwa wartość.
Plik z danymi to plik tekstowy z wartościami w systemie dziesiętnym.
B.
-
2. Data: 2009-11-13 21:08:29
Temat: Re: Przekroczenie wartości na liczbę
Od: Jaytee <j...@g...com>
B pisze:
> Witam,
> Mam taką sytuację że w danych pomiarowych których wartości powinny
> znajdować się między 0 a 0xffff pojawiają się liczby ujemne. Wydaje mi
> się, że w zmiennej jest jeszcze zaszyty bit znaku, który jest zazwyczaj
> jest 0 ale gdy pomiar przekroczy dozwolony zakres to ten bit jest
> również nadpisywany. Jak wydobyć z takiej liczy ujemnej prawdziwa wartość.
> Plik z danymi to plik tekstowy z wartościami w systemie dziesiętnym.
>
> B.
Miedzy 0 - 0xffff to dziesietnie 0 - 65535.
1. Czy Twoje wartosci w pliku tekstowym przekraczaja 65535 lub sa
mniejsze niz 0?
2. W jakiej zmiennej trzymasz te wartosci? Jakiego typu? I na jakiej
maszynie?
Na moim 32bitowym komputerze te dwa bajty mieszcza sie w typie short C++
W takim przypadku wartosc 0xffff to rzeczywiscie jest dziesietnie -1
unsigned short oczywiscie zalatwia sprawe. To czy wartosc jest ujemna
czy jest wartoscia dodatnia to kwestia interpreatacji jednego bitu :)
Pozdrawiam!
Jaytee
-
3. Data: 2009-11-13 21:44:34
Temat: Re: Przekroczenie wartości na liczbę
Od: Jacek Czerwinski <...@...z.pl>
B pisze:
> Witam,
> Mam taką sytuację że w danych pomiarowych których wartości powinny
> znajdować się między 0 a 0xffff pojawiają się liczby ujemne. Wydaje mi
> się, że w zmiennej jest jeszcze zaszyty bit znaku, który jest zazwyczaj
> jest 0 ale gdy pomiar przekroczy dozwolony zakres to ten bit jest
> również nadpisywany. Jak wydobyć z takiej liczy ujemnej prawdziwa wartość.
> Plik z danymi to plik tekstowy z wartościami w systemie dziesiętnym.
>
> B.
Excuse moi (nie znam francuskiego, zresztą hebrajskiego też)
Możesz jeszcze raz to dać po polsku?
-
4. Data: 2009-11-14 11:37:47
Temat: Re: Przekroczenie wartości na liczbę
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
B <...@...pl> napisał(a):
> Witam,
> Mam taką sytuację że w danych pomiarowych których wartości powinny
> znajdować się między 0 a 0xffff pojawiają się liczby ujemne. Wydaje mi
> się, że w zmiennej jest jeszcze zaszyty bit znaku, który jest zazwyczaj
> jest 0 ale gdy pomiar przekroczy dozwolony zakres to ten bit jest również
> nadpisywany. Jak wydobyć z takiej liczy ujemnej prawdziwa wartość.
> Plik z danymi to plik tekstowy z wartościami w systemie dziesiętnym.
> B.
A do jakiej zmiennej wczytujesz te wartości? Wczytuj do zmiennej typu
unsigned (bez znaku) albo do zmiennej o większym zakresie.
W jaki w ogóle sposób wczytujesz, że dziesiętne wartości dodatnie robią Ci
się ujemne? Jak to jest konwertowane? Jaki język programowania?
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i aktualności ze świata Outlook Express: grzegorz.net/oe
Uptime: 1 day, 2 hours, 10 minutes and 26 seconds
-
5. Data: 2009-11-15 16:50:35
Temat: Re: Przekroczenie wartości na liczbę
Od: B <...@...pl>
Jaytee pisze:
> B pisze:
>> Witam,
>> Mam taką sytuację że w danych pomiarowych których wartości powinny
>> znajdować się między 0 a 0xffff pojawiają się liczby ujemne. Wydaje mi
>> się, że w zmiennej jest jeszcze zaszyty bit znaku, który jest
>> zazwyczaj jest 0 ale gdy pomiar przekroczy dozwolony zakres to ten bit
>> jest również nadpisywany. Jak wydobyć z takiej liczy ujemnej prawdziwa
>> wartość.
>> Plik z danymi to plik tekstowy z wartościami w systemie dziesiętnym.
>>
>> B.
>
> Miedzy 0 - 0xffff to dziesietnie 0 - 65535.
> 1. Czy Twoje wartosci w pliku tekstowym przekraczaja 65535 lub sa
> mniejsze niz 0?
nie przekraczają 65535 ale są mniejsze niż zero.
> 2. W jakiej zmiennej trzymasz te wartosci? Jakiego typu? I na jakiej
> maszynie?
tego nie wiem. Nie ja pisałem ten program co takie dane podaje. Ja chce
z nich odczytać poprawne wartości.
-
6. Data: 2009-11-15 16:54:02
Temat: Re: Przekroczenie wartości na liczbę
Od: B <...@...pl>
Jacek Czerwinski pisze:
> B pisze:
>> Witam,
>> Mam taką sytuację że w danych pomiarowych których wartości powinny
>> znajdować się między 0 a 0xffff pojawiają się liczby ujemne. Wydaje mi
>> się, że w zmiennej jest jeszcze zaszyty bit znaku, który jest
>> zazwyczaj jest 0 ale gdy pomiar przekroczy dozwolony zakres to ten bit
>> jest również nadpisywany. Jak wydobyć z takiej liczy ujemnej prawdziwa
>> wartość.
>> Plik z danymi to plik tekstowy z wartościami w systemie dziesiętnym.
>>
>> B.
> Excuse moi (nie znam francuskiego, zresztą hebrajskiego też)
> Możesz jeszcze raz to dać po polsku?
to jest po polsku ale jak dla pana łopatą:
1. są sobie dane w formacie binarnym (nie znam go)
2. jest program co konwertuje te dane na format tekstowy
3. program ów robi to źle, bo z założenia pomiary mają być między 0 a
0xffff. A są ujemne.
4. wnioskuję, że konwertujący program wczytuje wartość dwu bajtową bez
znaku do zmiennej ze znakiem i stąd przy bardzo dużych wartościach
zamiast poprawnych liczb dostaję wartości ujemne.
5. pytanie jak policzyć jaka jest poprawna wartość pomiaru.
B.
-
7. Data: 2009-11-15 16:59:34
Temat: Re: Przekroczenie wartości na liczbę
Od: "Stachu 'Dozzie' K." <d...@d...im.pwr.wroc.pl.nospam>
On 15.11.2009, B wrote:
> Jaytee pisze:
>> B pisze:
>>> Witam,
>>> Mam taką sytuację że w danych pomiarowych których wartości powinny
>>> znajdować się między 0 a 0xffff pojawiają się liczby ujemne. Wydaje mi
>>> się, że w zmiennej jest jeszcze zaszyty bit znaku, który jest
>>> zazwyczaj jest 0 ale gdy pomiar przekroczy dozwolony zakres to ten bit
>>> jest również nadpisywany. Jak wydobyć z takiej liczy ujemnej prawdziwa
>>> wartość.
>>> Plik z danymi to plik tekstowy z wartościami w systemie dziesiętnym.
>>>
>>> B.
>>
>> Miedzy 0 - 0xffff to dziesietnie 0 - 65535.
>> 1. Czy Twoje wartosci w pliku tekstowym przekraczaja 65535 lub sa
>> mniejsze niz 0?
>
> nie przekraczają 65535 ale są mniejsze niż zero.
>
>> 2. W jakiej zmiennej trzymasz te wartosci? Jakiego typu? I na jakiej
>> maszynie?
>
> tego nie wiem. Nie ja pisałem ten program co takie dane podaje. Ja chce
> z nich odczytać poprawne wartości.
A zgłosiłeś błąd dostawcy programu? Bo to się w ten sposób załatwia.
--
Stanislaw Klekot
-
8. Data: 2009-11-15 19:19:44
Temat: Re: Przekroczenie wartości na liczbę
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
B <...@...pl> napisał(a):
> 5. pytanie jak policzyć jaka jest poprawna wartość pomiaru.
Jak jest ujemna to dodaj ją do 65536.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i aktualności ze świata Outlook Express: grzegorz.net/oe
Uptime: 2 days, 9 hours, 53 minutes and 41 seconds
-
9. Data: 2009-11-16 19:49:58
Temat: Re: Przekroczenie wartości na liczbę
Od: B <...@...pl>
Stachu 'Dozzie' K. pisze:
> On 15.11.2009, B wrote:
>
> A zgłosiłeś błąd dostawcy programu? Bo to się w ten sposób załatwia.
>
Aparatura miernicza na uczelni, program napisał jakiś dawny
doktorant/magistrant. Już go nie ma, źródeł też nie ma.
Mogę napisać go od nowa ale rozpracowanie formatu binarnego jest
trudniejsze, więc myślałem, że to da sie łatwo przerobić.
B.
-
10. Data: 2009-11-17 06:39:04
Temat: Re: Przekroczenie wartości na liczbę
Od: Michal Schulz <m...@o...eu>
B wrote:
> Stachu 'Dozzie' K. pisze:
>> On 15.11.2009, B wrote:
>>
>> A zgłosiłeś błąd dostawcy programu? Bo to się w ten sposób załatwia.
>>
> Aparatura miernicza na uczelni, program napisał jakiś dawny
> doktorant/magistrant. Już go nie ma, źródeł też nie ma.
>
> Mogę napisać go od nowa ale rozpracowanie formatu binarnego jest
> trudniejsze, więc myślałem, że to da sie łatwo przerobić.
Da sie. Grzegorz Niemirowski podal ci odpowiedz.
--
Michal Schulz