Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
Win a copy of GANs in ActionE this week in the AI forum
or WebAssembly in Action in the JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Paul Clapham
  • Jeanne Boyarsky
  • Knute Snortum
Sheriffs:
  • Liutauras Vilda
  • Tim Cooke
  • Junilu Lacar
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Joe Ess
  • salvin francis
  • fred rosenberger

Primitive Numbers Range

 
Ranch Hand
Posts: 34
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am trying to figure out the ranges of primitive numbers. I came up to the following conclusion, say, for byte range:

BinDec
000000000
01111111127
10000000-128
11111111-1
Howerver I' m not so sure if this is true.
Could anyone help me to clear this out?
Thanks
 
author
Posts: 8998
19
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
you got it!!!
 
Sheriff
Posts: 4313
Android IntelliJ IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
you got it. Byte's range is -128 to 127 (8 bits)
You can check out the JLS for the other numerical ranges:
�4.2.1 Integral Types and Values
 
Panos Liaskos
Ranch Hand
Posts: 34
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jessica and Bert, Thank you both for you replies.
 
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
But how have you reached to this conclusion?
 
Panos Liaskos
Ranch Hand
Posts: 34
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, it is said that the leftmost bit is used as the sign of the number. So if it is 0 it is a positive and if it is 1 it is a negative.
For a byte the range is supposed to be for positives: 0 -> 127 and for negatives: -128 -> -1.
The only way I could represent this as bits was what you read above.
 
mister krabs
Posts: 13974
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
-2 to the 7th power = -128
(2 to the 7th power) -1 = 127
You can use this formula for all the primitive integers. Replace 7th power with (the number of bits - 1)
It would be easier if HTML was enabled... let's pretend that ** means "to the power of"
byte - 8 bits (-128 to 127) (-2**7 to (2**7)-1)
short - 16 bits (-32,768 to 32,767) (-2**15 to (2**15)-1)
int - 32 bits (-2,147,483,648 to 2,147,483,647) (-2**31 to (2**31)-1)
long - 64 bits (-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807) (-2**63 to (2**63)-1)
 
Panos Liaskos
Ranch Hand
Posts: 34
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Thomas for your reply.
The use of this formula is realy helpful.
My question though, was mostly about how you represent this ranges as bits.
thanks
 
BJ king
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I wanted to have clear understanding.
Thanks Thomas
 
Please enjoy this holographic presentation of our apocalyptic dilemma right after this tiny ad:
Java file APIs (DOC, XLS, PDF, and many more)
https://products.aspose.com/total/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!