0
Regarding Unsigned, Signed etc
i still don't understand what is the purpose for unsigned, signed, short, long and what is it for. could anyone convert it to a simplest way to make me understand?
8 Respostas
+ 1
When a variable is stored in memory, the memory it takes depends on its data type. A long int will take more space than an int, and a short int will take less. The number of different values that a variable stored on n bytes can take is 2^(8*n). Signed values can be negative, unsigned can't but have double the space for positive ones.
Type Size (bytes) Range-Minimum Range- Maximum
Character 1 -128 127
Unsigned Char 1 0 255
Signed Char 1 -128 127
Integer 4 -2,147,483,648 2,147,483,647
Signed Int 4 0 4,294,967,295
Unsigned Int 4 -2,147,483,648 2,147,483,647
Short Int 2 -32,768 32,767
Signed short Int 2 0 65,535
Unsigned Short Int 2 -32,768 32,767
Long Int 4 -2,147,483,648 2,147,483,647
Signed Long Int 8 0 4,294,967,295
Unsigned Long Int 8 -2,147,483,648 2,147,483,647
Float 4 1.8E-38 3.4E+38
Double 8 2.2E-308 1.8E+308
Long Double 8 2.2E-308 1.8E+308
Bool 1 True/False True/False
Wchar_t 2 or 4 0 65,535
Trying to "just write down the number" would mean erasing the memory adjacent to the variable if the number is too big, so no, we can't just do that.
0
It's all about memory. Declaring a variable you tell the program how much memory you want to reserve for it. Or the way you want it to save the number.
Long or short, if you want more or less memory for that variable, changing how big the number memorized in it can be.
Signed if you want to memorized either positive or negative numbers. Unsigned only positive numbers, but not having negative ones, you have space for double quantity of positive numbers.
e.g. if you have 4 bit of memory, you can save 16 numbers.
signed: from -8 to +7
unsigned: from 0 to 15
long: 4 or 8 bit, 16 or 256 numbers (depending)
short: 2 or 4 bit, 4 or 16 numbers (depending)
0
so it's just changing the memory? so what does the int hold? and what it you going trough big number? just weird why cant we just writ down the number
0
When a program start, it has to know, and you have to choose, how much memory to reserve.
The INT one: it depends on the compiler, on the computer, on the operating system. Actually, it should be 32bit, from −2.147.483.648 to +2.147.483.647.
Short = 16 bit, long = int = 32bit. But depends.
You can use also "long long int", 64bit, it's a very long one...
0
can i just say that if I'm making a game and it requires quite alot of memory so i put long int for a reserve. it could hold more memory so i won't be afraid that it might exceed?
0
In your game, it depends on what every variable has to do. Some variables will probably store only "2 digits" numbers, others big numbers, others fractional numbers.
Using very big variables to store small numbers will result in too big programs. Maybe not now, but when you will create that game you'll probably know which type to use. Experience will teach you.
0
marcram, sorry i have another question, if i write just int 10, but it cant hold negative number? when u write int 10 its already a positive them why must we put unsigned or signed.
0
Because, if you have an expression that result in a number that you know will be between 0 and 40000, for example, you can declare a variable INT. or you can save memory and declare a SHORT UNSIGNED INT, that can hold numbers between 0 and 65535.
Perhaps it will be useful when you have to make your program more light... or perhaps you'll never have to use it.