• Number systems and conversion from binary to decimal. Converting numbers from decimal to binary and back

    Write the number in the binary number system, and the powers of two from right to left. For example, we want to convert the binary number 10011011 2 to decimal. Let's write it down first. Then we write the powers of two from right to left. Let's start with 2 0, which is equal to "1". We increase the degree by one for each subsequent number. We stop when the number of elements in the list is equal to the number of digits in the binary number. Our example number, 10011011, has eight digits, so a list of eight elements would look like this: 128, 64, 32, 16, 8, 4, 2, 1

    Write the digits of the binary number under the corresponding powers of two. Now simply write 10011011 under the numbers 128, 64, 32, 16, 8, 4, 2, and 1, so that each binary digit corresponds to a different power of two. The rightmost "1" of the binary number must correspond to the rightmost "1" of the powers of two, and so on. If you prefer, you can write the binary number above powers of two. The most important thing is that they match each other.

    Match the digits in a binary number with the corresponding powers of two. Draw lines (from right to left) that connect each successive digit of the binary number to the power of two above it. Start drawing lines by connecting the first digit of a binary number to the first power of two above it. Then draw a line from the second digit of the binary number to the second power of two. Continue connecting each number to the corresponding power of two. This will help you visually see the relationship between two different sets of numbers.

    Write down the final value of each power of two. Go through each digit of a binary number. If the number is 1, write the corresponding power of two under the number. If this number is 0, write 0 under the number.

    • Since "1" matches "1", it remains "1". Since "2" matches "1", it remains "2". Since "4" corresponds to "0", it becomes "0". Since "8" matches "1", it becomes "8", and since "16" matches "1" it becomes "16". "32" matches "0" and becomes "0", "64" matches "0" and therefore becomes "0", while "128" matches "1" and therefore becomes 128.
  • Add up the resulting values. Now add the resulting numbers under the line. Here's what you would do: 128 + 0 + 0 + 16 + 8 + 0 + 2 + 1 = 155. This is the decimal equivalent of the binary number 10011011.

    Write the answer along with a subscript equal to the number system. Now all you have to do is write 155 10 to show that you are working with a decimal answer, which operates in powers of ten. The more you convert binary numbers to decimals, the easier it will be for you to remember powers of two, and the faster you will be able to complete the task.

  • Use this method to convert a binary number with a decimal point to decimal form. You can use this method even if you want to convert a binary number such as 1.1 2 to decimal. All you need to know is that the number on the left side of the decimal is a regular number, and the number on the right side of the decimal is the "halve" number, or 1 x (1/2).

    • "1" to the left of the decimal number corresponds to 2 0, or 1. 1 to the right of the decimal number corresponds to 2 -1, or.5. Add 1 and .5 and you get 1.5, which is the decimal equivalent of 1.1 2.
  • The most common calculation methods in the modern world are decimal and binary. They are used in completely different areas, but both are equally important. Often a conversion from binary to decimal system or vice versa is required. The names come from the bases, which depend on how many signs are used in writing numbers. In binary it is only 0 and 1, and in decimal it is from 0 to 9. In other systems, in addition to numbers, letters, other icons and even hieroglyphs are used, but almost all of them have long been outdated. Since even other types of numerical systems are much less common, we will primarily talk about the two already mentioned. It's actually amazing how all this could have been invented. Let's talk about this topic separately.

    History of origin

    Even now, when it would seem that the whole world thinks the same way, there are a variety of different systems. In the most remote corners of the globe, they are content with only the concepts of “one”, “two” and “many”, or something similar. What can we say about those times when it was much more difficult for people to contact each other, so a huge number of different types of records and calculation methods were used. Humanity did not immediately come to the existing system, and this is reflected in the fact that the hour is divided into 60 minutes, and not into 100 periods of time, which would seem to be more logical. And at the same time, people often count in tens rather than dozens. All these are echoes of the time when one’s own fingers or, for example, the phalanges of some of them served as tools for quantifying something. This is how the decimal and duodecimal systems came into being. But how did binary arise? Very simple and logical. The fact is that, for example, diodes have only two positions: it can be either on or off. The first state can thus be written as 1, and the second as 0. However, this does not mean that the binary system arose simultaneously with electronic devices. It was used much earlier, for example, Leibniz considered it extremely convenient, elegant and simple. It’s even surprising that this number system did not eventually become the main one.

    Areas of application

    For most people, the two major number systems simply do not intersect. So converting from binary to decimal is not a feasible task for everyone. The fact is that the latter system is used in everyday life, communication between people, for simple calculations, etc. But all digital devices, primarily computers, speak the binary language. Any information located in the memory of every desktop PC, tablet, phone, laptop and many other devices is various combinations of zeros and ones.

    Differences and features

    When it comes to number systems, it is imperative to somehow differentiate between them. After all, it is absolutely impossible to distinguish between 11 and 100 in different recording methods. That is why the pointer below and to the right of the number itself is used. So, when you see the entry 11 2 or 100 10, you can understand what we are talking about. Both systems are positional, that is, its value depends on the location of a particular digit. They talk about the digits of the decimal system in school: there are units, tens, hundreds, thousands, etc. In the binary system everything is the same. But due to the fact that its base - 2 - is less than 10, it needs much more digits, that is, the recording of numbers turns out to be much longer. By the way, in binary, as in all other systems except decimal, which is the most common, reading occurs in a special way. If base 10 makes it possible to read 101 as "one hundred and one", then for 2 it will be "one zero one".

    Returning to the issue of discharges, it must be repeated that due to a much smaller base, more discharges are required. So, for example, 8 10 is 1000 2. The difference is obvious - one rank and four. Another major difference is that there are no negative numbers in the binary system. Of course, you can write it down, but it will still be stored and encrypted differently. So, how is the conversion from binary to decimal and vice versa made?

    Algorithm

    Quite rarely, but still sometimes you have to make a transition from one base to another. In other words, there is a need to convert from binary to decimal and vice versa. Modern computers do this easily and quickly, even if the records are very long and voluminous. Humans can do this too, albeit much more slowly and less efficiently. Carrying out both one and the second operation is not so difficult, but it requires knowledge of how to do it, attentiveness and practice. In order to move from base 2 to 10, you need to do the following steps:

    2) sequentially multiply the value by 2, raised to a power equal to the position number;

    3) add up the results.

    Another way is to start summing the products of digits sequentially from right to left. This is called the Horner transformation and many people find it more convenient than the usual algorithm.

    In order to carry out the reverse operation, that is, move from the decimal system to the binary system, you need to do this:

    1) divide the original number by 2 and write down the remainder (1 or 0);

    2) repeat step 1 until the moment when only 0 or 1 remains;

    3) write down the obtained values ​​in order.

    There are other ways to convert from binary to decimal number systems and vice versa. But they have no advantage over the described algorithm and are not more efficient. But they require skills in performing arithmetic operations in the binary system, which is available to very few.

    Fractions

    Fortunately or unfortunately, the fact remains that the binary system uses not only integers. Converting fractions is not a very difficult, but often time-consuming task for humans. If the original number is presented in the decimal system, then after converting the integer, everything after the decimal point should no longer be divided, but multiplied by 2, writing down the integer parts. If you are converting from binary to decimal system, then everything is even simpler. In this case, when the decimal part conversion begins, the power to which 2 is raised will successively be -1, -2, -3, etc. It is best to consider this in practice.

    Example

    In order to understand how to apply the described algorithms, you need to do all the operations yourself. Practice can always reinforce theory, so it would be best to consider the following examples:

    • converting 1000101 2 to the decimal system: 1x2 6 + 0x2 5 + 0x2 4 + 0x2 3 + 1x2 2 + 0x2 1 + 1x2 0 = 64+0+0+0+4+1 = 69 10 ;
    • using Horner's method. 00110111010 2 = 0x2+0=0x2+0=0x2+1=1x2+1=3x2+0=6x2+1=13x2+1=27x2+1=55x2+0=110x2+1=221x2+0=442 10 ;
    • 1110.01 2: 1x2 3 + 1x2 2 + 1x2 1 + 0x2 0 + 0x2 -1 + 1x2 -2 = 8+4+2+0.25 = 14.25 10 ;
    • from the decimal system: 15 10 = 15/2=7(1)/2=3(1)/2=1(1)/2=0(1)= 1111 2 ;

    How not to get confused?

    Even using only the binary and decimal systems as an example, it becomes clear that changing the base manually is a non-trivial task. But there are also others: hexadecimal, octal, sexagesimal, etc. When manually converting from one number system to another, care is extremely necessary. It’s really difficult not to get confused, especially if the post is long. In addition, we must not forget that digits are counted from 0, not 1, that is, the number of digits will always be one more. Of course, you need to carefully count the number of digits and not make mistakes in arithmetic operations and, of course, not skip steps in the algorithm. Ultimately, there are ways to transition between bases using software methods. But here it’s easier to write a script yourself than to search for it on the World Wide Web. In any case, manual translation skills, as well as a theoretical understanding of how this is done, should also be present.

    Most people on our planet use the decimal number system when counting, but computers use the binary number system. Some tribes at the dawn of human development used duodecimal and sexagesimal. It is from them that we are left with 12 hours on the dial and 60 minutes in an hour.

    Sometimes it is necessary to convert a number from one system to another. In this article, we will look more specifically at how to convert to the decimal system from some other popular systems.

    The principle of constructing a number from digits

    First of all, you need to understand what a number system is and its basis. A number system is a way of representing numbers as a combination of certain digits. The basis of the system is the number of digits used in it. For example, in the decimal system with base 10 there are only 10 digits - from 0 to 9. In hexadecimal, there are, respectively, 16 digits, which are designated by Arabic numerals 0 - 9 and Latin letters A - F instead of digits 10 - 15. For example, 2F7BE 16 - hexadecimal number. When written in this way, the subscript denotes the base of the number system. The key difference between systems with different bases is the "value" of the number 10. In hexadecimal, 10 16 would be equal to 16 10, but in binary, 10 2 would be equal to just two. 100 16 will be calculated as

    100 16 = 10 16 * 10 16 = 16 10 * 16 10 = 256 10 .

    It is also necessary to distinguish between the concepts “digit” and “number”. A number is indicated by one symbol, and a number may be represented by several. For example, the number 9 10 in the binary system will look like 1001 2, and the number 9 in the binary system does not exist as such.

    Translation algorithm

    To convert a number to the decimal system, you need to learn how to use a simple algorithm.

    1. Determine the base of the number system. It is indicated by a subscript after the number, for example, in the number 2F7BE 16 the base is 16.
    2. Multiply each digit of the number by the base to a power equal to the number of the digit from right to left, starting from zero. In the number 2F7BE, 16 E (equal to 14) is multiplied by 16 to the zero power, B (digit 11) by 16 to the first power, and so on: 2F7BE 16 = 2*16 4 +15*16 3 + 7*16 2 + 11 *16 1 + 14*16 0 .
    3. Add up the results.

    2*16 4 +15*16 3 + 7*16 2 + 11*16 1 + 14*16 0 = 194494 10 .

    Let's look at examples of how to convert the most popular hexadecimal, octal and binary systems into decimal.

    • 5736 8 = 5*8 3 + 7*8 2 + 3*8 1 + 6*8 0 = 3038 10
    • 1001011 2 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 = 75 10
    • 2F7BE 16 = 2*16 4 +15*16 3 + 7*16 2 + 11*16 1 + 14*16 0 = 194494 10

    Of course, counting manually every time is inconvenient, irrational, and even reluctant. There are many calculators that can convert numbers from system to system. For example, a standard Windows calculator in Programmer mode (Alt+3 keys or View menu) can work with radix systems 2, 8, 10 and 16.

    The result has already been received!

    Number systems

    There are positional and non-positional number systems. The Arabic number system, which we use in everyday life, is positional, but the Roman number system is not. In positional number systems, the position of a number uniquely determines the magnitude of the number. Let's consider this using the example of the number 6372 in the decimal number system. Let's number this number from right to left starting from zero:

    Then the number 6372 can be represented as follows:

    6372=6000+300+70+2 =6·10 3 +3·10 2 +7·10 1 +2·10 0 .

    The number 10 determines the number system (in this case it is 10). The values ​​of the position of a given number are taken as powers.

    Consider the real decimal number 1287.923. Let's number it starting from zero, position of the number from the decimal point to the left and right:

    Then the number 1287.923 can be represented as:

    1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3· 10 -3.

    In general, the formula can be represented as follows:

    C n s n +C n-1 · s n-1 +...+C 1 · s 1 +C 0 ·s 0 +D -1 ·s -1 +D -2 ·s -2 +...+D -k ·s -k

    where C n is an integer in position n, D -k - fractional number in position (-k), s- number system.

    A few words about number systems. A number in the decimal number system consists of many digits (0,1,2,3,4,5,6,7,8,9), in the octal number system it consists of many digits (0,1, 2,3,4,5,6,7), in the binary number system - from a set of digits (0,1), in the hexadecimal number system - from a set of digits (0,1,2,3,4,5,6, 7,8,9,A,B,C,D,E,F), where A,B,C,D,E,F correspond to the numbers 10,11,12,13,14,15. In the table Tab.1 numbers are presented in different number systems.

    Table 1
    Notation
    10 2 8 16
    0 0 0 0
    1 1 1 1
    2 10 2 2
    3 11 3 3
    4 100 4 4
    5 101 5 5
    6 110 6 6
    7 111 7 7
    8 1000 10 8
    9 1001 11 9
    10 1010 12 A
    11 1011 13 B
    12 1100 14 C
    13 1101 15 D
    14 1110 16 E
    15 1111 17 F

    Converting numbers from one number system to another

    To convert numbers from one number system to another, the easiest way is to first convert the number to the decimal number system, and then convert from the decimal number system to the required number system.

    Converting numbers from any number system to the decimal number system

    Using formula (1), you can convert numbers from any number system to the decimal number system.

    Example 1. Convert the number 1011101.001 from binary number system (SS) to decimal SS. Solution:

    1 ·2 6 +0 ·2 5 + 1 ·2 4 + 1 ·2 3 + 1 ·2 2 + 0 ·2 1 + 1 ·2 0 + 0 ·2 -1 + 0 ·2 -2 + 1 ·2 -3 =64+16+8+4+1+1/8=93.125

    Example2. Convert the number 1011101.001 from octal number system (SS) to decimal SS. Solution:

    Example 3 . Convert the number AB572.CDF from hexadecimal number system to decimal SS. Solution:

    Here A-replaced by 10, B- at 11, C- at 12, F- by 15.

    Converting numbers from the decimal number system to another number system

    To convert numbers from the decimal number system to another number system, you need to convert the integer part of the number and the fractional part of the number separately.

    The integer part of a number is converted from decimal SS to another number system by sequentially dividing the integer part of the number by the base of the number system (for binary SS - by 2, for 8-ary SS - by 8, for 16-ary SS - by 16, etc. ) until a whole residue is obtained, less than the base CC.

    Example 4 . Let's convert the number 159 from decimal SS to binary SS:

    159 2
    158 79 2
    1 78 39 2
    1 38 19 2
    1 18 9 2
    1 8 4 2
    1 4 2 2
    0 2 1
    0

    As can be seen from Fig. 1, the number 159 when divided by 2 gives the quotient 79 and remainder 1. Further, the number 79 when divided by 2 gives the quotient 39 and remainder 1, etc. As a result, constructing a number from division remainders (from right to left), we obtain a number in binary SS: 10011111 . Therefore we can write:

    159 10 =10011111 2 .

    Example 5 . Let's convert the number 615 from decimal SS to octal SS.

    615 8
    608 76 8
    7 72 9 8
    4 8 1
    1

    When converting a number from a decimal SS to an octal SS, you need to sequentially divide the number by 8 until you get an integer remainder less than 8. As a result, constructing a number from division remainders (from right to left) we get a number in octal SS: 1147 (See Fig. 2). Therefore we can write:

    615 10 =1147 8 .

    Example 6 . Let's convert the number 19673 from the decimal number system to hexadecimal SS.

    19673 16
    19664 1229 16
    9 1216 76 16
    13 64 4
    12

    As can be seen from Figure 3, by successively dividing the number 19673 by 16, the remainders are 4, 12, 13, 9. In the hexadecimal number system, the number 12 corresponds to C, the number 13 to D. Therefore, our hexadecimal number is 4CD9.

    To convert regular decimal fractions (a real number with a zero integer part) into a number system with base s, it is necessary to sequentially multiply this number by s until the fractional part is pure zero, or we obtain the required number of digits. If the multiplication results in a number with an integer part other than zero, then this integer part is not taken into account (they are sequentially included in the result).

    Let's look at the above with examples.

    Example 7 . Let's convert the number 0.214 from the decimal number system to binary SS.

    0.214
    x 2
    0 0.428
    x 2
    0 0.856
    x 2
    1 0.712
    x 2
    1 0.424
    x 2
    0 0.848
    x 2
    1 0.696
    x 2
    1 0.392

    As can be seen from Fig. 4, the number 0.214 is sequentially multiplied by 2. If the result of multiplication is a number with an integer part other than zero, then the integer part is written separately (to the left of the number), and the number is written with a zero integer part. If the multiplication results in a number with a zero integer part, then a zero is written to the left of it. The multiplication process continues until the fractional part reaches a pure zero or we obtain the required number of digits. Writing bold numbers (Fig. 4) from top to bottom we get the required number in the binary number system: 0. 0011011 .

    Therefore we can write:

    0.214 10 =0.0011011 2 .

    Example 8 . Let's convert the number 0.125 from the decimal number system to binary SS.

    0.125
    x 2
    0 0.25
    x 2
    0 0.5
    x 2
    1 0.0

    To convert the number 0.125 from decimal SS to binary, this number is sequentially multiplied by 2. In the third stage, the result is 0. Consequently, the following result is obtained:

    0.125 10 =0.001 2 .

    Example 9 . Let's convert the number 0.214 from the decimal number system to hexadecimal SS.

    0.214
    x 16
    3 0.424
    x 16
    6 0.784
    x 16
    12 0.544
    x 16
    8 0.704
    x 16
    11 0.264
    x 16
    4 0.224

    Following examples 4 and 5, we get the numbers 3, 6, 12, 8, 11, 4. But in hexadecimal SS, the numbers 12 and 11 correspond to the numbers C and B. Therefore, we have:

    0.214 10 =0.36C8B4 16 .

    Example 10 . Let's convert the number 0.512 from the decimal number system to octal SS.

    0.512
    x 8
    4 0.096
    x 8
    0 0.768
    x 8
    6 0.144
    x 8
    1 0.152
    x 8
    1 0.216
    x 8
    1 0.728

    Received:

    0.512 10 =0.406111 8 .

    Example 11 . Let's convert the number 159.125 from the decimal number system to binary SS. To do this, we translate separately the integer part of the number (Example 4) and the fractional part of the number (Example 8). Further combining these results we get:

    159.125 10 =10011111.001 2 .

    Example 12 . Let's convert the number 19673.214 from the decimal number system to hexadecimal SS. To do this, we translate separately the integer part of the number (Example 6) and the fractional part of the number (Example 9). Further, combining these results we obtain.

    Hello, site visitor! We continue to study the IP network layer protocol, and to be more precise, its version IPv4. At first glance the topic binary numbers and binary number system has nothing to do with the IP protocol, but if we remember that computers work with zeros and ones, then it turns out that the binary system and its understanding is the basis of the basics, we need learn to convert numbers from binary to decimal and vice versa: decimal to binary. This will help us better understand the IP protocol, as well as the principle of operation of variable-length network masks. Let's get started!

    If the topic of computer networks is interesting to you, you can read other course recordings.

    4.4.1 Introduction

    Before we begin, it’s worth explaining why a network engineer needs this topic. Although you could be convinced of its necessity when we spoke, you can say that there are IP calculators that greatly facilitate the task of allocating IP addresses, calculating the necessary subnet/network masks and determining the network number and host number in IP. address. That’s right, but the IP calculator is not always at hand, this is the reason number one. Reason number two is that in the Cisco exams they won't give you an IP calculator and that's it. you will have to do the conversion of IP addresses from decimal to binary on a piece of paper, and there are not so few questions where this is required in the exam/exams for obtaining the CCNA certificate, it would be a shame if the exam was failed because of such a trifle. And finally, understanding the binary number system leads to a better understanding of the principle of operation.

    In general, a network engineer is not required to be able to convert numbers from binary to decimal and vice versa in his head. Moreover, rarely anyone knows how to do this mentally; teachers of various courses on computer networks mainly fall into this category, since they constantly encounter this every day. But with a piece of paper and a pen, you should learn how to translate.

    4.4.2 Decimal digits and numbers, digits in numbers

    Let's start simple and talk about binary digits and numbers, you know that numbers and numbers are two different things. A number is a special symbol for designation, and a number is an abstract notation for quantity. For example, to write down that we have five fingers on our hand, we can use Roman and Arabic numerals: V and 5. In this case, five is both a number and a digit. And, for example, to write the number 20 we use two digits: 2 and 0.

    In total, in the decimal number system we have ten digits or ten symbols (0,1,2,3,4,5,6,7,8,9), by combining which we can write different numbers. What principle are we guided by when using the decimal number system? Yes, everything is very simple, we raise ten to one degree or another, for example, let’s take the number 321. How can it be written differently, like this: 3*10 2 +2*10 1 +1*10 0 . Thus, it turns out that the number 321 represents three digits:

    1. The number 3 means the most significant place or in this case it is the hundreds place, otherwise their number.
    2. The number 2 is in the tens place, we have two tens.
    3. The number one refers to the least significant digit.

    That is, in this entry a two is not just a two, but two tens or two times ten. And three is not just three, but three times a hundred. The following dependence is obtained: the unit of each next digit is ten times greater than the unit of the previous one, because what 300 is is three times a hundred. A digression regarding the decimal number system was necessary to make it easier to understand the binary system.

    4.4.3 Binary digits and numbers, as well as their recording

    There are only two digits in the binary number system: 0 and 1. Therefore, writing a number in the binary system is often much larger than in the decimal system. With the exception of the numbers 0 and 1, zero in the binary number system is equal to zero in the decimal number system, and the same is true for one. Sometimes, in order not to confuse which number system the number is written in, sub-indices are used: 267 10, 10100 12, 4712 8. The number in the sub-index indicates the number system.

    The symbols 0b and &(ampersand) can be used to write binary numbers: 0b10111, &111. If in the decimal number system, to pronounce the number 245 we use this construction: two hundred and forty-five, then in the binary number system, to name the number, we need to pronounce a digit from each digit, for example, the number 1100 in the binary number system should not be pronounced as a thousand one hundred, but like one, one, zero, zero. Let's look at writing the numbers from 0 to 10 in the binary number system:

    I think the logic should be clear by now. If in the decimal number system for each digit we had ten options available (from 0 to 9 inclusive), then in the binary number system in each of the digits of a binary number we have only two options: 0 or 1.

    To work with IP addresses and subnet masks, we only need natural numbers in the binary number system, although the binary system allows us to write fractional and negative numbers, but we don’t need this.

    4.4.4 Converting numbers from decimal to binary

    Let's take a better look at this how to convert a number from decimal to binary. And here everything is actually very, very simple, although it’s difficult to explain in words, so I’ll give it right away example of converting numbers from decimal to binary. Let's take the number 61, to convert to binary, we need to divide this number by two and see what is the remainder of the division. And the result of division is again divided by two. In this case, 61 is the dividend, we will always have two as a divisor, and we divide the quotient (the result of division) by two again, continue dividing until the quotient contains 1, this last unit will be the leftmost digit . The picture below demonstrates this.

    Please note that the number 61 is not 101111, but 111101, that is, we write the result from the end. In the latter particular, there is no sense in dividing the unit by two, since in this case integer division is used, and with this approach it turns out as in Figure 4.4.2.

    This is not the fastest way to convert a number from binary to decimal.. We have several accelerators. For example, the number 7 in binary is written as 111, the number 3 as 11, and the number 255 as 11111111. All these cases are incredibly simple. The fact is that the numbers 8, 4, and 256 are powers of two, and the numbers 7, 3, and 255 are one less than these numbers. So, for numbers that are one less than a number equal to a power of two, a simple rule applies: in the binary system, such a decimal number is written as a number of units equal to a power of two. So, for example, the number 256 is two to the eighth power, therefore, 255 is written as 11111111, and the number 8 is two to the third power, and this tells us that 7 in the binary number system will be written as 111. Well, understand, how to write 256, 4 and 8 in the binary number system is also not difficult, just add one: 256 = 11111111 + 1 = 100000000; 8 = 111 + 1 = 1000; 4 = 11 + 1 = 100.
    You can check any of your results on a calculator and it’s better to do so at first.

    As you can see, we have not yet forgotten how to divide. And now we can move on.

    4.4.5 Converting numbers from binary to decimal

    Converting numbers from binary is much easier than converting from decimal to binary. As an example of translation, we will use the number 11110. Pay attention to the table below, it shows the power to which you need to raise two in order to eventually get a decimal number.

    To get a decimal number from this binary number, you need to multiply each number in the digit by two to the power, and then add the results of the multiplication; it’s easier to show:

    1*2 4 +1*2 3 +1*2 2 +1*2 1 +0*2 0 = 16+8+4+2+0=30

    Let's open the calculator and make sure that 30 in the decimal number system is 11110 in binary.

    We see that everything was done correctly. From the example it is clear that Converting a number from binary to decimal is much easier than converting it back. To work with confidence you just need to remember powers of two up to 2 8. For clarity, I will provide a table.

    We don’t need more, since the maximum possible number that can be written in one byte (8 bits or eight binary values) is 255, that is, in each octet of the IP address or IPv4 subnet mask, the maximum possible value is 255. There are fields , in which there are values ​​greater than 255, but we do not need to calculate them.

    4.4.6 Addition, subtraction, multiplication of binary numbers and other operations with binary numbers

    Let's now look at operations that can be performed on binary numbers. Let's start with simple arithmetic operations and then move on to Boolean algebra operations.

    Adding binary numbers

    Adding binary numbers is not that difficult: 1+0 =1; 1+1=0 (I’ll give an explanation later); 0+0=0. These were simple examples where only one digit was used, let's look at examples where the number of digits is more than one.
    101+1101 in the decimal system is 5 + 13 = 18. Let's count in a column.

    The result is highlighted in orange, the calculator says that we calculated correctly, you can check it. Now let's see why this happened, because at first I wrote that 1+1=0, but this is for the case when we have only one digit, for cases when there are more than one digits, 1+1=10 (or two in decimal), which is logical.

    Then look what happens, we perform additions by digits from right to left:

    1. 1+1=10, write zero, and one goes to the next digit.

    2. In the next digit we get 0+0+1=1 (this unit came to us from the result of addition in step 1).

    4. Here we have a unit only in the second number, but it has also been transferred here, so 0+1+1 = 10.

    5. Glue everything together: 10|0|1|0.

    If you’re lazy in a column, then let’s count like this: 101011+11011 or 43 + 27 = 70. What can we do here, but let’s look, because no one forbids us to make transformations, and changing the places of the terms does not change the sum, for the binary number system this rule is also relevant.

    1. 101011 = 101000 + 11 = 101000 + 10 + 1 = 100000 + 1000 + 10 + 1.
    2. 11011 = 11000 + 10 + 1 = 10000 + 1000 + 10 + 1.
    3. 100000 + 10000 + (1000 +1000) + (10+10) + (1+1).
    4. 100000 + (10000 + 10000) + 100 + 10.
    5. 100000 + 100000 +110
    6. 1000000 + 110.
    7. 1000110.

    You can check with a calculator, 1000110 in binary is 70 in decimal.

    Subtracting Binary Numbers

    Immediately an example for subtracting single-digit numbers in the binary number system, we didn’t talk about negative numbers, so we don’t take 0-1 into account: 1 – 0 = 1; 0 – 0 = 0; 1 – 1 = 0. If there are more than one digits, then everything is also simple, you don’t even need any columns or tricks: 110111 – 1000, this is the same as 55 – 8. As a result, we get 101111. And the heart stopped beating , where does the unit in the third digit come from (numbering from left to right and starting from zero)? It's simple! In the second digit of the number 110111 there is 0, and in the first digit there is 1 (if we assume that the numbering of digits starts from 0 and goes from left to right), but the unit of the fourth digit is obtained by adding two units of the third digit (a kind of virtual two is obtained) and from this For twos, we subtract one, which is in the zero digit of the number 1000, and 2 - 1 = 1, and 1 is a valid digit in the binary number system.

    Multiplying binary numbers

    It remains for us to consider the multiplication of binary numbers, which is implemented by shifting one bit to the left. But first, let's look at the results of single-digit multiplication: 1*1 = 1; 1*0=0 0*0=0. Actually, everything is simple, now let's look at something more complex. Let's take the numbers 101001 (41) and 1100 (12). We will multiply by column.

    If it is not clear from the table how this happened, then I will try to explain in words:

    1. It is convenient to multiply binary numbers in a column, so we write out the second factor under the first; if the numbers have different numbers of digits, it will be more convenient if the larger number is on top.
    2. The next step is to multiply all the digits of the first number by the lowest digit of the second number. We write the result of the multiplication below; we need to write it so that under each corresponding digit the result of the multiplication is written.
    3. Now we need to multiply all the digits of the first number by the next digit of the second number and write the result one more line below, but this result needs to be shifted one digit to the left; if you look at the table, this is the second sequence of zeros from the top.
    4. You need to do the same for subsequent digits, each time moving one digit to the left, and if you look at the table, you can say that one cell to the left.
    5. We have four binary numbers that we now need to add and get the result. We recently looked at addition, there shouldn't be any problems.

    In general, the multiplication operation is not that difficult, you just need a little practice.

    Boolean algebra operations

    There are two very important concepts in Boolean algebra: true and false, the equivalent of which is zero and one in the binary number system. Boolean algebra operators expand the number of available operators over these values, let's take a look at them.

    Logical AND or AND operation

    The Logical AND or AND operation is equivalent to multiplying single-digit binary numbers.

    1 AND 1 = 1; 1 AND 0 = 1; 0 AND 0 = 0; 0 AND 1 = 0.

    1 AND 1 = 1 ;

    1 AND 0 = 1 ;

    0 AND 0 = 0 ;

    0 AND 1 = 0.

    The result of “Logical AND” will be one only if both values ​​are equal to one; in all other cases it will be zero.

    Operation "Logical OR" or OR

    The operation “Logical OR” or OR works on the following principle: if at least one value is equal to one, then the result will be one.

    1 OR 1 = 1; 1 OR 0 = 1; 0 OR 1 = 1; 0 OR 0 = 0.

    1 OR 1 = 1 ;

    1 OR 0 = 1 ;

    0 OR 1 = 1 ;

    0 OR 0 = 0.

    Exclusive OR or XOR operation

    The operation "Exclusive OR" or XOR will give us a result of one only if one of the operands is equal to one and the second is equal to zero. If both operands are equal to zero, the result will be zero and even if both operands are equal to one, the result will be zero.