JAVA zmienne bez znaku

0

Witam

Czy jest w JAVA coś takiego jak zmienna bez znaku jak np. unsigned int?

3

Nie

0

Czym bardziej poznaje JAVE tym bardziej widzę że jest daleko w tyle za C#

0

W tyle :D :D to jest zwykła decyzja implementacyjna. To nie jest tak że nie ma tam zmiennych unsigned bo ich nie umieli napisać, albo bo są zacofani. Po prostu uznali że są zbędne ;] I ja zresztą też nie widzę gdzie by miały mieć wyższość nad intami ze znakiem ;] Jak pracujesz z dużymi liczbami to kwestia signed/unsigned zwykle cię nie ratuje tak czy siak.

0

Pytanie brzmi po co? W C#, który miał być konkurencją dla javy, ale ze wszystkimi elementami C++ typy bez znaku mają sens. Wraz ze wszystkimi tego konsekwencjami. W Javie ich nie zaimplementowano ponieważ, znalazły się na "czarnej liście" rzeczy, które są przyczyną bugów. W ten sam sposób potraktowano np. wskaźniki.

0

To przykład gdzie jest mi to potrzebne.
Mam dwa bajty (buforIn) 19- to bajt starszy , 20-to bajt młodszy, teraz chce zrobić z tego liczbę 2-bajtową

 
ushort temperature 0x00;
temperature |= Convert.ToUInt16(BuforIn_1[19] << 8);
 temperature|= BuforIn_1[20]; 

Jak to zrobić?

0

@kornik280

  1. Albo użyj języka który służy do takich niskopoziomowych manipulacji ;] (C/C++ albo Python na przykład)
  2. Albo wykonaj zwykłe działania matematyczne. To znaczy po ludzku wykonaj jedno mnożenie i jedno dodawanie. Kawałek kodu ktory pokazałeś od razu dostałby reverta w każdej normalnej firmie bo jest nieczytelny ;]
0

Kod jest napisany w wysokopoziomowym C#, albo Thread.sleep(100) trzeba dawać w try... haha co tam może się stać niespodziewanego
Jeśli chodzi o nieczytelny kod to zależy dla kogo

0

Przesunięcia bitowe i bitowe ory to faktycznie wysoki poziom :D
Co się może stać? Dokumentacja prawdę ci powie: http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html

0

Sens moje wypowiedzi jest taki że w wysokopoziomowym C# można coś takiego zapisać gdy jest to potrzebne.
Co do wyjątków to jeśli programista jest świadomy co może się stać i jeśli wie że to nie nastąpi to i tak bezmyślnie musi napisać try catch

0

O dziwo nawet takim mistrzom wysokopoziomowego C# dogodzili w ósemce:

Unsigned Arithmetic Support
Methods were added to the Java Libraries to support unsigned integer arithmetic. Integers are 32-bits numbers out of which 1 bit is reserved for the sign but using these unsigned methods one can use all the 32 bits. Static methods such as parseUnsignedLong, toUnsignedString, divideUnsigned, compareUnsigned were added to the Long class and methods such as divideUnsigned, compareUnsigned, parseUnsignedInt, remainderUnsigned, toUnsignedString were added to the Integer class. These methods are faster than using the BigDecimal and BigInteger for arithmetic opearations as these include optimizations of primitive datatypes.

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