Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


What is meant by 32 bit and 16 bit applications ?

Posted on 2003-03-01
Medium Priority
Last Modified: 2008-02-01
What is meant by 32 bit and 16 bit applications ? What is the significance of these bits ?
Question by:JustStarted

Expert Comment

ID: 8050106
a lot of thing

First 16 bit applicition is originaly from dos and win 3.11
and 32 bit application from win 95- until now

itc wery compliced to tell what is all difrent but the most significal is miltitasking and better use of procesor strength

one of the best inprovment of 32-bit applications is a chance of "Real" multitasking.
That " " is the wery complicet to explain :))

like biginer i think thats is enought to know
LVL 101

Expert Comment

ID: 8050208
16 and 32 bit refer to the wordsize of the processor.

Each processor processes data of a certain size by defult.  The original processors 8088 and the 6502 were 8bit processors.  80286, 80386, and 80486 were 16 bit processors.  The Pentium series 80586 are 32 bit processors.

16 and 32 bit have little to do with multitasking and use of processor strength.

There are many 8 and 16 bit applications that make tremendous use of the processor.  Multitasking is due mainly to improvements in the operating system which were possible because the processors got faster and bigger.


Expert Comment

ID: 8050573
The key difference between 16Bit and 32Bit applications are as follows...
16Bit Win applications are single-threadded (run in one process). Whereas...
32Bit Win applications can be multi-threadded (can run in more than one process).
Both 16Bit and 32Bit Win applications can run more than one instance.
Note: An instance is not a process! - Each time a program is started it is a new instance of that program which is created, when the program is closed the instance is destroyed. A Process is the execution of code. A Thread is the same as a process.
For Example...
If you have two tasks to complete in a program, such as 1 = Process some data, and 2 = Update the display.
Single-threaded applications would complete task 1 wait for it to complete then complete task 2 (All in one process or thread). This is because the application runs in only one process (the Main Thread).
Multi-threaded applications would run task 1 in the main process (Main Thread), and create a second Process (Second Thread) in which task 2 would run. Thus Task 1 and Task 2 are running at the same time. Data can be passed from task 2 to task 1 while they are both running at the same time. This is because Win32 applications can create their own processes.
Note: Win32 applications can be both Single-Threaded or Multi-Threaded, this depends on which method the programmer has chosen.
16Bit applications share the same address space. i.e two instances of the same program running can natively see each other.
32Bit applications have their own 4GB address space. i.e they cannot natively see each other, you can get access to another 32Bit instance using a Mutex (Published Instance Handle).
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

LVL 50

Expert Comment

ID: 8050708
Time for my 5 cents worth.

A 16 bit application is one that can only deal with data or code in chunks of 64 Kb.  Due to the early Intel processors design they could only point to memory in 64 Kb chunks (these are segments).  Any byte of these 64 Kb chunks are the offset (a 64 Kb range).  

The 16 bit refers to 64 Kb.  Try (2 to the power of 16 ) - 1 and you'll get the 64 Kb chunk.

Problems arise when code or data is bigger than 64 Kb and there are ways around this problem.

In a 32 bit application the chunks are now 4 Gb in size (if you want to use a chunk of memory that large).

The 32 bit is (2 to the power of 32) - 1.  That's the 4 Gb chunk.

It has nothing to do with multi tasking.  You can do that with 16 or 32 bit code.
LVL 15

Expert Comment

ID: 8051376
dbrunton and mlmcc are right.
16 or 32 (or 8 or 64 or whatever) is only the number of bits per "machine word".
Thus the limits quoted by dbrunton : a byte (for an 8-bits processor, like the 6502 of the Apple ][, 6502A or the Oric-1 or the 6510 or the Commodore64) is only able to store values upto 255. Given the memory address bus uses (usually) 2 machine words to compute memory addresses, this leads to a limit of 16 bits or 256*255 = 65280 bytes. Thus the 64 KB limit of such computers (effectively 8/16 systems)

A 16 bits (even if it's a "false 16 bits" like the 8086 and unlike the 80186 :D ) system has a limit of about 4 GB addresses if it still uses 2 machine words for addresses (thus it's a 32 bits bus address width).(16/32 systems)
Moreover, Intel chose to use a strange memory model : segments and offsets. 64KB is called a "standard size" segment, and memory addresses are a segment number on 16 bits + an offset in that segment, still on 16 bits.

A true 32 bits system (68000, 80386, ARM32, Transputer 800 etc) uses 32 bits for addresses (thus still 4GB memory "places" adressable)

I hope I did not make any memory errors ;-)

Expert Comment

ID: 8051678
mlmcc is nearly right.

The 8088 is a 16-bit processor, with hardware that causes it to access 16-bit words as two bytes. This was originally to allow 8-bit memory as developed for S-100 systems to be used with the then-new 16-bit processors. Otherwise, it is identical to the 8086. Since the 8086 accesses all 16 bits in one memory-access cycle, it was substantially faster.

A 16-bit application is one where all of the arithmetic and logical functions are performed using the original 16-bit architecture, the AX,BX,CX,DX,SI,DI,CS,DS,ES and flags registers of the 8088/8086, 80186 and 80286.

A 32-bit application is one that REQUIRES an 80386 or later to run because the program is expecting to use the 32-bit registers EAX, EBX..., FS, GS, etc. and the extra instructions that were included in later CPUs.

It has nothing whatever to do with multitasking. You can run a little application called "Windows 3.0" which was popular in the early 1990's (BEFORE Windows 3.1(1)) which COULD multitask on an 8088. Perhaps "Run" might be overstating it a bit, saunter might be more accurate.

With the greater MIPS demand of modern applications (It's too expensive to write EFFICIENT programs - you now simply write an inefficient program and crank up the CPU power) you REQUIRE a faster processor. If the OS requires a "32-bit" CPU, then it's folly to write a 16-bit application - but you can turn 32-bit compilations off under Borland Pascal, I believe - and land up with a 16-bit application, which will run on a 32-bit machine - albeit more slowly than if the app had been compiled using the 32-bit option.


Expert Comment

ID: 8053923
well just started, i know this so 16 bit is 16 000 000 coulors 32 bit is 32 000 000 colours. now some games require 32 bit color settings (ie duke nukem manhatten project) the newer the game the more likely it needs 32 bit. now the thing is you're moniter has to support 32 bit. you dont need 32 bit but the colour will be richer and more widley expanded. hope i helped,
c y a later
LVL 15

Expert Comment

ID: 8055551
not at all, 16 bits is not 16 M colours, 32 bits is not 32 M colours...

games require a 32 bit-processor for its speed, not at all 32 bits colour! (this is an other problem). What's true is that to handle efficiently 32-bits colours (ie a pixel has colour coded on 32 bits, or 4 bytes, each for RGB+Gamma) you need a 64-bits or 32-bits processor.

32-bits colouring provides 4,294 billion colours (combinations), not 32 million as you wrote

this was only FYI

Expert Comment

ID: 9447418
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
Post your closing recommendations!  No comment means you don't care.

Accepted Solution

AnnieMod earned 0 total points
ID: 9538587
PAQ'd and points NOT refunded

Community Support Moderator @ Experts-Exchange

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

572 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question