# Java-Ausdrücke



## Siisii92 (5. Feb 2022)

boolean x = (0xffffffff + 1 == 0 );

Warum bekomme hier true?

0xffffffff = (429496)10
429496+1=429497
429497==0 ist true?


----------



## Gelöschtes Mitglied 65838 (5. Feb 2022)

weil du einen ovverflow kriegst alle fs werden zu 0


----------



## Siisii92 (5. Feb 2022)

0xffffffffL  + 1 < 0 
kannst du mir bitte diese auch erklären?


----------



## Jw456 (5. Feb 2022)

Du hast 32 bit alle bits sind gesetz. 1
Addiert du nun eins hinzu. Ist es zu  viel für 32 bit. Es entsteht eo ein übertrag.


```
1111 1111 1111 1111 1111 1111 1111 1111 + 1 =?
```


----------



## Jw456 (5. Feb 2022)

Siisii92 hat gesagt.:


> 0xffffffffL  + 1 < 0
> kannst du mir bitte diese auch erklären?


Das L für long 64 bit hast du in deinen ersten Beitrag nicht. 

boolean x = (0xffffffff + 1 == 0 );
=0x100000000 

Übersetzt der Compiler in einem 32 bit Wert 
Und die letzten 32 bit sind 0


----------



## Jw456 (5. Feb 2022)

Siisii92 hat gesagt.:


> 0xffffffff = (429496)10


4294967295


----------

