Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #11  
Old 06-08-2005, 01:39 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK, let's start at 0
Computers can only handle two signal states: Low and High (Voltage).
This represents a Bit, eg. 0 or 1.
All Numbers are constructed as a series of bits, for example 01101001.
This is called the binary or dual system, in opposite to the decimal system we use for everyday calculations.
As there are only 2 Values (0 and 1), the base for this is 2.
How do we determine the value of a number in the decimal system:
For eamle 126 is One Hundred and Twenytsix, or One Hundred + Tweny + Six, or formally:
6*10^0 + 2*10^2 + 1*10^2
This works the same way in dual system, but with 2 as base:
10000 = 0*2^0 + 0*2^1 + 0*2^2 + 0*2^3 + 0*2^4 = 16

As you can see, 16 represents the 5th bit.

Now we got some decimal number, let's say 287654.

How do we know if the 5th bit is set?
First we convert this to a number in dual system by cintinued division:
Code:
287654 / 2 = 143827 + 0
143827 / 2 = 71913  + 1
71913  / 2 = 35956  + 1
35956 / 2 = 17978   + 0
17978 / 2 = 8989    + 0
8989 / 2 = 4494     + 1
4494 / 2 = 2247     + 0
2247 / 2 = 1123     + 1
1123 / 2 = 561      + 1
561 / 2 = 280       + 1
280 / 2 = 140       + 0
140 / 2 = 70        + 0
70 / 2 = 35         + 0
35 / 2 = 17         + 1
17 / 2 = 8          + 1
8 / 2 = 4           + 0
4 / 2 = 2           + 0
2 / 2 = 1           + 0
1 / 2 = 0           + 1
Now we write down the remaining values in reversed order:
Code:
1000110001110100110
This is decimal 287654 in dual system.

Now we can check if bit #5 (decimal 16, dual 10000) is set:
Code:
1000110001110100110
              10000
Technically, this is a AND operation. Every bit position is compared - if both are the same the result-bit at this position is 1:
Code:
  1000110001110100110
&               10000
= 0000000000000000000
As the can see, the result is 0.

But if we had for example
Code:
  1000110001110110110
&               10000
= 0000000000000010000
Here the result is not 0, eg. the bit is set.
What is the difference between 1000110001110100110 and 1000110001110110110?

We already know that 1000110001110100110 is 287654 because we started with this.
So let's convert 1000110001110110110 to decimal:

0*2^0 + 1*2^1 + 1*2^1 + 0*2^2 ... = 287670.

As you can see, the difference is 16, as expected as this represents the bit we just set.

Maybe this makes things a bit clearer - or got you totally confused
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:51 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04470 seconds
  • Memory Usage 2,671KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (5)bbcode_code
  • (4)bbcode_php
  • (6)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (14)post_thanks_box
  • (14)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (14)post_thanks_postbit_info
  • (14)postbit
  • (14)postbit_onlinestatus
  • (14)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete