|
|||||||
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
#1 |
|
Member (9 bit)
Join Date: Jan 2002
Location: UK
Posts: 389
|
65535, the majic number
Can someone explain why a computer cannot exceed 65535
i mean, take a port scanner, its port scanning range cannot exceed 65535 and i think i've been told something about 65535 in assembly too whats with 65535?? is it jsut some majic number that computers use for certain things anyone know? |
|
|
|
|
|
#2 |
|
Forum Administrator
Staff
Premium Member
Join Date: May 2000
Location: Joplin MO
Posts: 37,771
|
That's 64k (64*1024) minus 1 (it starts at zero, not one).
|
|
|
|
|
|
#3 |
|
Member (14 bit)
Premium Member
Join Date: Jan 2002
Location: The Great NorthWest
Posts: 12,594
|
Hi Battery Powered
Haven't "seen" ya much for a while... timing I guess ![]() A lot of restrictions actually are leftovers from the "early" days of computers where every bit, nibble, and byte was considered at a very high premium. That's why are still around ASCII character set is only 128 (or, 0 - 127,if you prefer). It's also the reason for the Y2K scare. At one time, editing a file larger than 64K was a pretty good trick. That's one reason why Microsoft wants to dump DOS. TwoRails |
|
|
|
|
|
#4 |
|
Member (9 bit)
Join Date: Jan 2002
Location: UK
Posts: 389
|
yeah i've not been in much over the last couple months, but im paying visits more now : )
(i also noticed yesturday, the post i started in General, 'post a joke' is still going strong, seems like my spirt kept on going) : -) so 64k, would this have anything to do with the computers limits, like the computer cannot handle anymore than this? i remember a lectuerer at college last year, he gave an explination asto why 65535 couldnt be exceeded in perticluar things, but i just canno for the life of me remember why |
|
|
|
|
|
#5 |
|
Member (10 bit)
Join Date: May 2000
Location: New Zealand
Posts: 546
|
Casting back (quite a bit) when we only had 8-bit and 16-bit operating systems, 65535 was the highest memory address that was accessable.
This was derived from the dual address code (2 bytes effectively) being two numbers each of which was maxed at 256 decimal (0 - 255). 255 in decimal is 11111111 in binary. Therefore, the highest address that could be accessed was (255, 255) in decimal, or (255 x 256 + 255 = 65535). In binary it was (11111111, 11111111). I distinctly remember getting a 64Kb RAM pack to add to my machine and thinking that there was no conceivable way that anyone could ever use it all up - the programming effort alone would have been too great. But then we were writing code in Z80 assembler (machine code) which was rather more 'efficient' than C++ or the more modern languages, if perhaps a little difficult to read! |
|
|
|
|
|
#6 |
|
Member (9 bit)
Join Date: Jan 2002
Location: UK
Posts: 389
|
what bit o.s's do we use now?
and thanks for your explination, its exactly what i needed |
|
|
|
|
|
#7 |
|
Member (3 bit)
Join Date: Oct 2002
Posts: 6
|
pentiums and equivs use 32 bit and itaniums and equiv use 64 bit architecture I believe. Someone correct me if I've got this wrong.
|
|
|
|
|
|
#8 |
|
Professional gadfly
|
Yes, currently the standard is 32-bit operating systems, though with the switch to 64-bit chips 64-bit operating systems will become more prevalent.
The advantage is simply handling numbers. As you saw, when you have 16 bits, the largest number you can deal with is 2^16-1. Whether it be memory addresses, clusters on a hard drive, or just plain numbers that you are crunching in your programs, 65535 isn't very much. 32 bits give you over four billion, which is a lot better but still not enough when it comes to certain applications like multimedia, graphics, encryption, or databases. 64 bits gives a max number of 18,446,744,073,709,551,615 unsigned. That should provide some more room.
|
|
|
|
|
|
#9 |
|
Registered User
Join Date: Nov 2001
Posts: 1,965
|
BTW, even if CPUs we are using today are 32bit, this doesn't mean that programs can't deal with numbers larger than 232-1, this can be done, but operations on numbers larger than this require more CPU time.
A 32bit CPU can do one operation on 32bit numbers in one instruction, while an operation on larger numbers requires more than one instruction, which means more time. |
|
|
|
|
|
#10 |
|
Professional gadfly
|
That's a good clarification. Of course you can program PCs to count as high as you would like, but the largest number that can be stored in any one location (variable) is limited. It makes things much more complicated, as well as much slower.
|
|
|
|
|
|
#11 |
|
Registered User
Join Date: Nov 2001
Posts: 1,965
|
Here is a good article about 64bit computing, I saw the link posted somewhere on the forums:
http://anandtech.com/guides/viewfaq.html?i=112 |
|
|
|
|
|
#12 |
|
Resident Slacker
Join Date: Dec 2001
Location: Suisun City, California (i know, where the hell is that?!?!?)
Posts: 2,620
|
another place you can see that number (well, except the minus one part) is in excel. the max rows is 65536
__________________
Friends help you move. REAL friends help you move bodies. - me quite possibly the best book ever written... by me |
|
|
|
|
|
#13 |
|
Member (10 bit)
Join Date: May 2000
Location: New Zealand
Posts: 546
|
And Excel's max columns is 256, being 2^8 and also equal to 65536^0.5
|
|
|
|
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|