Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Högsta talet i java

Skapad av bonbon, 2014-07-23 00:18 i Webbutveckling & Programmering

3 202
5 inlägg
0 poäng
bonbon
Visningsbild
P 26 Hjälte 1 054 inlägg
0
jag har märkt en sten konstig sak, jag lekte lite med loopar tidigare idag och lyckades få fram det högsta talet, 2147483647, sedan testade jag att lägga till 1 till det å det funkade utmärkt, det högsta talet är alltså 2147483648, trodde jag!

jag googlade lite och hittade en tråd på ett forum där nån frågade varför 2147483647 var det högsta talet, hen fick en massa svar men ingen påpekade att det finns ett högre tal, det verkade vara en massa kunniga personer som hade svarat, men ingen verkar fatta att det finns ett högre tal, är det bara jag som vet det?

https://community.oracle.com/thread/2124366

Tillägg av bonbon 2014-07-23 00:21

jag märkte att det inte va så (hehe) men det lägsta talet är 2147483648, och DET är konstigt.

En vis man sa en gång ingenting, ty han var vis

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Knutsson
Visningsbild
P 32 Skövde Hjälte 18 inlägg
0
Bit: Kan antingen vara '1' eller '0'
Most significant bit (msb): 0011 0010 - Biten längst till vänster
Integer (int): 32 bitar stort tal

Positiva binära tal: msb = 0
Negativa binära tal: msb = 1

Största möjliga tal = 0111 1111 1111 1111 1111 1111 1111 1111 (2,147,483,647)
Minsta möjliga tal = 1000 0000 0000 0000 0000 0000 0000 0000 (-2,147,483,648)

Kolla länken nedan för mer info
http://sv.wikipedia.org/wiki/Tvåkomplementsform


Om du vill använda ännu större tal så kan du använda datatypen "long", den består av 64 bitar.

Hoppas detta hjälpte!

Kräjsi

mittacc
Visningsbild
Hjälte 394 inlägg
0
Som Knutsson sa så har man en teckenbit som anger om talet är positivt/negativt.

Egentligen står det att det minsta talet är 2147483648 fast denna teckenbit aktiverar en "flagga" i något som kallas SREG, statusregistret, vilket i sin tur talar om för datorn vad de sammansatta registren, i det här fallet ett "double word"(4st 8bitarsregister, totalt 32-bit), ska betyda när den kör diverse kommandon.

Detta tal kan alltså lika gärna vara en string betående av ASCII-värden. Ett exempel på detta är A som i binär form är 01000001 eller talet 65 i decimal form. Beroende på vilket kommando datorn får så tolkar den detta som antingen ett A eller talet 65.

Ingen status

gaminggirl
Visningsbild
F 38 Lund Hjälte 8 084 inlägg
0

Svar till bonbon [Gå till post]:
Högsta möjliga tal du kan får i Java är 9,223,372,036,854,775,807 dvs högsta möjliga värde för en long.

Anledningen att det blir 1 mer i de negativa talen är att den bit som finns längst till vänster agera teckenbit och bestämmer om talet är positivt eller negativt. Om talet är negativt tar man alla bitar som inte är teckenbitar och inverterar dem och sedan lägger till 1. Därför går negativa tal 1 längre ner än positiva tal...

Ingen status

SkalmanOnDrugs
Visningsbild
P 35 Göteborg Hjälte 2 758 inlägg
0
När du deklarerar en variabel så sparas plats i minnet åt variabeln. Olika datatyper upptar olika mycket plats. Se Java datatyper:

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

Så om man vet att en viss variabel kommer att vara och alltid vara ett litet tal exempelvis så är det bättre att använda short istället för int, för att ta ett exempel.

Du måste konstruera ytterligare pyloner


Forum » Datorer & IT » Webbutveckling & Programmering » Högsta talet i java

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons