background image

   I Liceum Ogólnokształcące   

 

im. Kazimierza Brodzińskiego

 

w Tarnowie

 

©2018 mgr Jerzy Wałaszek

  

Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych

.

 

Autor artykułu: mgr Jerzy Wałaszek,  wersja 4.1

 ©2008 mgr Jerzy Wałaszek

 

I LO w Tarnowie

Naturalny system dwójkowy

Podrozdziały

 

Tematy pokrewne

Wartość liczby w naturalnym kodzie dwójkowym

Zakres liczby dwójkowej

Schemat Hornera dla liczb dwójkowych

Przeliczanie liczb dziesiętnych na dwójkowe

Programy

Borland Delphi
Borland C++ Builder
Microsoft Visual Basic
JavaScript

Zadania

Kody binarne

 

Dwójkowy system stałoprzecinkowy

 

Operacje arytmetyczne w systemie dwójkowym

 

Operacje logiczne na bitach

 

Konwersje dwójkowo ósemkowe i szesnastkowe

 

Wartość liczby w naturalnym kodzie dwójkowym

Naturalny  system  dwójkowy 

(ang.  NBS  -  Natural  Binary  System)

  jest  najprostszym  systemem  pozycyjnym,  w  którym  podstawa

p = 2. System posiada dwie cyfry 0 i 1, zatem można je kodować bezpośrednio jednym bitem informacji. Wartość liczby obliczamy
zgodnie ze wzorem podanym w rozdziale o 

systemach pozycyjnych

.

 

Zapamiętaj:

Wartość dziesiętna liczby zapisanej w naturalnym kodzie binarnym
 

b

n-1

b

n-2

...b

2

b

1

b

0

 = b

n-1

2

n-1

 + b

n-2

2

n-2

 + ... + b

2

2

2

 + b

1

2

1

 + b

0

2

0

gdzie

b - bit, cyfra dwójkowa 0 lub 1

 

n - liczba bitów w zapisie liczby

 

Przykład:

Obliczyć wartość liczby dwójkowej 11100101

(2)

.

 

11100101

(2)

 = 1 × 2

7

 + 1 × 2

6

 + 1 × 2

5

 + 0 × 2

4

 + 0 × 2

3

 + 1 × 2

2

 + 0 × 2

1

 + 1 × 2

0

 

11100101

(2)

 = 1 × 128 + 1 × 64 + 1 × 32 + 0 × 16 + 0 × 8 + 1 × 4 + 0 × 2 + 1 × 1

 

11100101

(2)

 = 128 + 64 + 32 + 4 + 1

 

11100101

(2)

 = 229

(10)

 

Jeśli dokładnie przyjrzysz się powyższym obliczeniom, to na pewno zauważysz, iż w systemie binarnym w celu obliczenia wartości
liczby wystarczy po prostu zsumować wagi pozycji, na których cyfry przyjmują wartość 1.

 

Przykład:

101011

(2)

 = 2

5

 + 2

3

 + 2

1

 + 2

0

 = 32 + 8 + 2 + 1 = 43

(10)

 

Jest to znaczne uproszczenie w stosunku do innych systemów, gdzie musimy wykonywać mnożenia cyfr przez wagi pozycji. Tutaj
albo dana waga występuje w wartości liczby 

(cyfra 1)

, albo nie występuje 

(cyfra 0)

. Nie na darmo system binarny jest najprostszym

systemem pozycyjnym.

Bardzo ważne dla informatyka i programisty jest nauczenie się na pamięć pierwszych szesnastu liczb binarnych:

 

dziesiętnie

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dwójkowo

0

1

10

11

100

101

110

111 1000 1001 1010 1011 1100 1101 1110 1111

 

Zakres liczby dwójkowej

Określmy,  jaką  największą  liczbę  dwójkową  możemy  zapisać  za  pomocą  n  bitów 

(czyli  cyfr  binarnych)

.  Największa  liczba  musi

posiadać same cyfry 1, czyli w wartości liczby muszą uczestniczyć wszystkie wagi pozycji. Zatem:

 

dla 1b mamy 

1

(2)

 = 1

(10)

dla 2b mamy  11

(2)

 = 2 + 1 = 3

(10)

dla 3b mamy 111

(2)

 = 4 + 2 + 1 = 7

(10)

dla 4b mamy 1111

(2)

 = 8 + 4 + 2 + 1 = 15

(10)

...

  

 

Otrzymujemy kolejne liczby:

 

dla 1b mamy 

 

dla 2b mamy

 

dla 3b mamy

 

dla 4b mamy

 

...

1

 

3

 

7

 

15

 

 

Liczby te tworzą prosty ciąg potęgowy:

 

dla 1b mamy  1 = 2

1

 - 1

dla 2b mamy 3 = 2

2

 - 1

dla 3b mamy 7 = 2

3

 - 1

dla 4b mamy 15 = 2

4

 - 1

...

 

 

 

Wykładnik potęgowy liczby 2 jest równy ilości bitów, zatem dla n bitów otrzymujemy wzór:

 

Zapamiętaj:

Zakres n bitowej liczby w naturalnym kodzie dwójkowym wynosi

Z

(2)

 = 0 ... 2

- 1

 

Przykład:

Jaką największą liczbę dziesiętną można przedstawić przy pomocy 64 bitów?

Odp.

2

64

 - 1 = 18446744073709551616 - 1 = 18446744073709551615

 

Schemat Hornera dla liczb dwójkowych

Schemat Hornera

 pozwala obliczyć wartość liczby binarnej przy minimalnej ilości operacji arytmetycznych. W systemie binarnym

schemat ten jest bardzo prosty:

 

Schemat Hornera dla systemu binarnego

Wejście: ciąg cyfr binarnych

 

Wyjście: W - wartość liczby reprezentowanej przez ciąg cyfr binarnych
 

K01: W 

 pierwsza cyfra

 

K02: Dopóki są kolejne cyfry, wykonuj W ← 2 × W + kolejna cyfra

 

K03: Zakończ

 

 

Operację mnożenia 2 × W możemy zastąpić dodawaniem W + W. Dodawanie komputer wykonuje o wiele szybciej od mnożenia

(jeszcze szybszą operacją jest przesunięcie bitów o jedną pozycję w lewo - taką operację wykonuje pojedynczy rozkaz procesora i
jest ona szybsza od dodawania!)

..

 

Przykład:

Obliczyć schematem Hornera wartość liczby binarnej 111010111101

(2)

 

cyfra 1: W = 1

 

cyfra 1: W = (1 + 1) + 1 = 3

 

cyfra 1: W = (3 + 3) + 1 = 7

 

cyfra 0: W = (7 + 7) + 0 = 14

 

cyfra 1: W = (14 + 14) + 1 = 29

 

cyfra 0: W = (29 + 29) + 0 = 58

 

cyfra 1: W = (58 + 58) + 1 = 117

 

cyfra 1: W = (117 + 117) + 1 = 235

 

cyfra 1: W = (235 + 235) + 1 = 471

 

cyfra 1: W = (471 + 471) + 1 = 943

 

cyfra 0: W = (943 + 943) + 0 = 1886

 

cyfra 1: W = (1886 + 1886) + 1 = 

3773

 - koniec

 

Przeliczanie liczb dziesiętnych na dwójkowe

Kolejne od końca cyfry binarne zapisu liczby w systemie dwójkowym otrzymamy jako reszty z dzielenia tej liczby przez 2. Metoda
ta została dokładnie opisana w rozdziale poświęconym 

przeliczaniu liczb dziesiętnych na zapis w innych systemach liczbowych

.

 

Algorytm wyznaczania cyfr zapisu dwójkowego liczby

Wejście: W - wartość liczby

 

Wyjście: ciąg cyfr binarnych reprezentujących w systemie dwójkowym wartość W
 

K01: kolejna cyfra ← W mod 2, W ← W div 2

 

K02: Jeśli W > 0, to idź do K01

 

K03: Wyprowadź otrzymane cyfry w kolejności odwrotnej do ich otrzymania

 

K04: Zakończ

 

Przykład:

Przeliczyć na system dwójkowy liczbę 582642

(10)

.

 

582642 div 2 = 291321 i reszta 0
291321 div 2 = 145660 i reszta 1
145660 div 2 =  72830 i reszta 0

72830 div 2 =  36415 i reszta 0
36415 div 2 =  18207 i reszta 1
18207 div 2 = 

9103 i reszta 1

9103 div 2 = 

4551 i reszta 1

4551 div 2 = 

2275 i reszta 1

2275 div 2 = 

1137 i reszta 1

1137 div 2 = 

568 i reszta 1

568 div 2 = 

284 i reszta 0

284 div 2 = 

142 i reszta 0

142 div 2 = 

71 i reszta 0

71 div 2 = 

35 i reszta 1

35 div 2 = 

17 i reszta 1

17 div 2 = 

8 i reszta 1

div 2 = 

4 i reszta 0

div 2 = 

2 i reszta 0

div 2 = 

1 i reszta 0

div 2 = 

0 i reszta 1 - koniec, wynik odczytujemy w kierunku z dołu do góry

 

582642

(10)

 = 10001110001111110010

(2)

 

Programy

Program oblicza wartość liczby binarnej podanej jako ciąg cyfr. Ciekawostką jest to, iż ciąg ten nie jest ograniczony i
może  zawierać  dowolną 

(w  rozsądnych  granicach)

  ilość  cyfr  binarnych.  Wynik  obliczany  jest  nie  jako  wartość

liczbowa, lecz jako ciąg cyfr dziesiętnych. Dzięki temu nie jesteśmy ograniczani zakresem zmiennych całkowitych.

Wartość liczby binarnej obliczamy podanym powyżej schematem Hornera.

 

Efekt uruchomienia programu

Obliczanie wartości dziesiętnej

 

   dowolnej  liczby binarnej

 

===============================

 

(C)2005 mgr Jerzy Wałaszek

 

                I LO w Tarnowie

 

 

Podaj liczbę binarną:

 

 

1110001011010101111101101010011111100010100010111110101010010111011111111010101

 

 

Wartość dziesiętna liczby binarnej:

 

 

535600877519892478934997

 

 

KONIEC. Naciśnij dowolny klawisz...

 

 

 

Borland

 

Delphi 7.0

 

Personal

 

Edition

// Obliczanie wartości dowolnej liczby dwójkowej

 

//----------------------------------------------

 

// (C)2005 mgr Jerzy Wałaszek

 

//                     I Liceum Ogólnokształcące

 

//                     im. K. Brodzińskiego

 

//                     w Tarnowie

 

//----------------------------------------------

 

 

program

 

bindec

 

{$APPTYPE CONSOLE}

 

 

var

 

  

bs

,

ds

     : 

string

  

i

,

j

,

c

,

p

,

s

 : 

cardinal

 

begin

 

  

writeln

(

'Obliczanie wartosci dziesietnej'

); 

  

writeln

(

'   dowolnej  liczby binarnej'

); 

  

writeln

(

'==============================='

); 

  

writeln

(

'(C)2005 mgr Jerzy Walaszek'

); 

  

writeln

(

'                I LO w Tarnowie'

); 

  

writeln

  

writeln

(

'Podaj liczbe binarna:'

); 

writeln

readln

(

bs

); 

  

writeln

  

ds

 := 

'0'

i

 := 

1

  

while

 (

i

 <= 

length

(

bs

)) 

and

 (

bs

[

i

in

 [

'0'

..

'1'

]) 

do

 

  

begin

 

    

p

 := 

0

;               

// Przeniesienie

 

    

c

 := 

ord

(

bs

[

i

]) - 

48

// Cyfra binarna

 

    

for

 

j

 := 

length

(

ds

downto

 

1

 

do

 

    

begin

 

 

// Schemat Hornera

 

 
      

s

 := 

2

 * (

ord

(

ds

[

j

]) - 

48

) + 

c

 + 

p

      

c

 := 

0

 

// Wyznaczamy przeniesienie do następnej kolumny

 

 
      

p

 := 

s

 

div

 

10

 

// Cyfrę wynikową zapisujemy w miejscu docelowym

 

 
      

ds

[

j

] := 

char

((

s

 

mod

 

10

) + 

48

); 

 

// Jeśli po wyczerpaniu cyfr ds przeniesienie p ma wartość

 

// większą od zera, to jest ono równe pierwszej cyfrze

 

 
      

if

 (

j

 = 

1

and

 (

p

 > 

0

then

 

ds

 := 

char

(

p

 + 

48

) + 

ds

    

end

 

// Następna cyfra binarna

 

 
    

inc

(

i

); 

  

end

  

writeln

(

'Wartosc dziesietna liczby binarnej:'

); 

  

writeln

  

writeln

(

ds

); 

  

writeln

  

writeln

(

'Nacisnij klawisz Enter...'

); 

readln

end

Borland

 

C++ Builder

 

6.0

 

Personal

 

Edition

// Obliczanie wartości dowolnej liczby dwójkowej

 

//----------------------------------------------

 

// (C)2005 mgr Jerzy Wałaszek

 

//                     I Liceum Ogólnokształcące

 

//                     im. K. Brodzińskiego

 

//                     w Tarnowie

 

//----------------------------------------------

 

 

#include <iostream>

 

#include <string>

 

 

using

 

namespace

 

std

 

main

() 


  

string

 

bs

,

ds

  

int

 

i

,

j

,

c

,

p

,

s

  

char

 

z

[

1

]; 

 
  

cout

 << 

"Obliczanie wartosci dziesietnej\n"

 

          

"   dowolnej  liczby binarnej\n"

 

          

"===============================\n"

 

          

"(C)2005 mgr Jerzy Walaszek\n"

 

          

"                I LO w Tarnowie\n\n"

 

          

"Podaj liczbe binarna:\n\n"

  

cin

 >> 

bs

  

cout

 << 

endl

  

ds

 = 

"0"

i

 = 

0

  

while

((

i

 < 

bs

.

length

()) && ((

bs

[

i

] == 

'0'

) || (

bs

[

i

] == 

'1'

))) 

  { 
    

p

 = 

0

;          

// Przeniesienie

 

    

c

 = 

bs

[

i

] - 

48

// Cyfra binarna

 

    

for

(

j

 = 

ds

.

length

() - 

1

j

 >= 

0

j

--) 

    { 
 

// Schemat Hornera

 

 
      

s

 = 

2

 * (

ds

[

j

] - 

48

) + 

c

 + 

p

      

c

 = 

0

 

// Wyznaczamy przeniesienie do następnej kolumny

 

 
      

p

 = 

s

 / 

10

 

// Cyfrę wynikową zapisujemy w miejscu docelowym

 

 
      

ds

[

j

] = (

char

)((

s

 % 

10

) + 

48

); 

 

// Jeśli po wyczerpaniu cyfr ds przeniesienie p ma wartość

 

// większą od zera, to jest ono równe pierwszej cyfrze

 

 
      

if

(!

j

 && 

p

ds

 = (

char

)(

p

 + 

48

) + 

ds

    }; 
 

// Następna cyfra binarna

 

 
    

i

++; 

  }; 
  

cout

 << 

"Wartosc dziesietna liczby binarnej:\n\n"

 

       << 

ds

 << 

"\n\nNacisnij ENTER...\n"

  

cin

.

getline

(

z

,

1

); 

  

cin

.

getline

(

z

,

1

); 

Microsoft

 

Visual

 

Basic 2005

 

Express

 

Edition

' Obliczanie wartości dowolnej liczby dwójkowej

 

'----------------------------------------------

 

' (C)2005 mgr Jerzy Wałaszek

 

'                     I Liceum Ogólnokształcące

 

'                     im. K. Brodzińskiego

 

'                     w Tarnowie

 

'----------------------------------------------

 

 

Option

 

Explicit

 

On

 

 

Module

 

Module1

 

 
  

Sub

 

Main

() 

 
    

Dim

 

bs

ds

 

As

 

String

 

    

Dim

 

i

j

c

p

s

 

As

 

Integer

 

 
    

Console

.

WriteLine

(

"Obliczanie wartości dziesiętnej"

    

Console

.

WriteLine

(

"   dowolnej  liczby binarnej"

    

Console

.

WriteLine

(

"==============================="

    

Console

.

WriteLine

(

"(C)2005 mgr Jerzy Wałaszek"

    

Console

.

WriteLine

(

"                I LO w Tarnowie"

    

Console

.

WriteLine

() 

    

Console

.

WriteLine

(

"Podaj liczbę binarną:"

    

Console

.

WriteLine

() 

    

bs

 = 

Console

.

ReadLine

() 

    

Console

.

WriteLine

() 

    

ds

 = 

"0"

 : 

i

 = 

0

 

    

While

 (

i

 < 

bs

.

Length

()) 

      

If

 (

bs

.

Chars

(

i

) <> 

"0"

And

 (

bs

.

Chars

(

i

) <> 

"1"

Then

 

Exit

 

While

 

      

p

 = 

0

                     

' Przeniesienie

 

      

c

 = 

Asc

(

bs

.

Chars

(

i

)) - 

48

 

' Cyfra binarna

 

      

For

 

j

 = 

ds

.

Length

() - 

1

 

To

 

0

 

Step

 -

1

 

 
        

' Schemat Hornera

 

 
        

s

 = 

2

 * (

Asc

(

ds

.

Chars

(

j

)) - 

48

) + 

c

 + 

p

 

        

c

 = 

0

 

 
        

' Wyznaczamy przeniesienie do następnej kolumny

 

 
        

p

 = 

s

 \ 

10

 

 
        

' Cyfrę wynikową zapisujemy w miejscu docelowym

 

 
        

Mid

(

ds

j

 + 

1

1

) = 

Chr

((

s

 

Mod

 

10

) + 

48

 
        

' Jeśli po wyczerpaniu cyfr ds przeniesienie p ma wartość

 

        

' większą od zera, to jest ono równe pierwszej cyfrze

 

 
        

If

 (

j

 = 

0

And

 (

p

 > 

0

Then

 

ds

 = 

Chr

(

p

 + 

48

) + 

ds

 

      

Next

 

 
      

' Następna cyfra binarna

 

 
      

i

 += 

1

 

    

End

 

While

 

    

Console

.

WriteLine

(

"Wartość dziesiętna liczby binarnej:"

    

Console

.

WriteLine

() 

    

Console

.

WriteLine

(

ds

    

Console

.

WriteLine

() 

    

Console

.

WriteLine

(

"KONIEC. Naciśnij dowolny klawisz..."

    

Console

.

ReadLine

() 

 
  

End

 

Sub

 

 

End

 

Module

 

JavaScript

<

html

  <

head

  </

head

  <

body

    <

div

 

align

=

"center"

<

form

 

style

=

"BORDER-RIGHT: #ff9933 1px outset; PADDING-RIGHT: 4px; 

             BORDER-TOP: #ff9933 1px outset; PADDING-LEFT: 4px; 
             PADDING-BOTTOM: 1px; BORDER-LEFT: #ff9933 1px outset; 
             PADDING-TOP: 1px; BORDER-BOTTOM: #ff9933 1px outset; 
             BACKGROUND-COLOR: #ffcc66"

 

name

=

"frmbindec"

  <

h3

 

id

=

"data_out"

 

style

=

"text-align: center"

    

Obliczanie

 

warto

ś

ci

 

dziesi

ę

tnej

<

br

    

dowolnej

 

liczby

 

binarnej

</

h3

  <

p

 

style

=

"TEXT-ALIGN: center"

    (

C

)

2005

 

mgr

 

Jerzy

 

Wa

ł

aszek

&

nbsp

;&

nbsp

I

 

LO

 

w

 

Tarnowie

 

  </

p

  <

hr

  <

div

 

align

=

"center"

    <

table

 

border

=

"0"

 

cellpadding

=

"4"

 

style

=

"border-collapse: collapse"

      <

tr

        <

td

 

align

=

"center"

>

Wprowad

ź 

poni

ż

ej

 

liczb

ę 

binarn

ą</

td

      </

tr

      <

tr

        <

td

 

align

=

"center"

<

input

 

value

=

"111000111000111000111000111000111000111000111000"

 

       

name

=

"inp_bs"

 

size

=

"80"

 

style

=

"text-align: right"

        </

td

      </

tr

      <

tr

        <

td

 

align

=

"center"

          <

input

 

onclick

=

"main();"

 

type

=

"button"

 

                 

value

=

"Oblicz wartość dziesiętną"

 

name

=

"B1"

        </

td

      </

tr

    </

table

  </

div

  <

p

 

id

=

"out_t"

 

style

=

"TEXT-ALIGN: center"

>...</

p

</

form

 
<

script

 

language

=

javascript

 

// Obliczanie wartości dowolnej liczby dwójkowej

 

//----------------------------------------------

 

// (C)2005 mgr Jerzy Wałaszek

 

// I Liceum Ogólnokształcące

 

// im. K. Brodzińskiego

 

// w Tarnowie

 

//----------------------------------------------

 

 

function

 

main

() 


  

var

 

bs

,

ds

,

i

,

j

,

c

,

p

,

s

 
  

bs

 = 

document

.

frmbindec

.

inp_bs

.

value

  

ds

 = 

"0"

i

 = 

0

  

while

((

i

 < 

bs

.

length

) && ((

bs

.

charAt

(

i

) == 

'0'

) || (

bs

.

charAt

(

i

) == 

'1'

))) 

  { 
    

p

 = 

0

;                     

// Przeniesienie

 

    

c

 = 

bs

.

charCodeAt

(

i

) - 

48

// Cyfra binarna

 

    

for

(

j

 = 

ds

.

length

 - 

1

j

 >= 

0

j

--) 

    { 
 

// Schemat Hornera

 

 
      

s

 = 

2

 * (

ds

.

charCodeAt

(

j

) - 

48

) + 

c

 + 

p

      

c

 = 

0

 

// Wyznaczamy przeniesienie do następnej kolumny

 

 
      

p

 = 

Math

.

floor

(

s

 / 

10

); 

 

// Cyfrę wynikową zapisujemy w miejscu docelowym

 

 
      

ds

 = 

ds

.

substr

(

0

,

j

) + 

String

.

fromCharCode

((

s

 % 

10

) + 

48

) + 

           

ds

.

substring

(

j

 + 

1

,

ds

.

length

); 

 

// Jeśli po wyczerpaniu cyfr ds przeniesienie p ma wartość

 

// większą od zera, to jest ono równe pierwszej cyfrze

 

 
      

if

(!

j

 && 

p

ds

 = 

String

.

fromCharCode

(

p

 + 

48

) + 

ds

    }; 
 

// Następna cyfra binarna

 

 
    

i

++; 

  }; 
  

document

.

getElementById

(

"out_t"

).

innerHTML

 = 

ds


 
</

script

    </

div

  </

body

</

html

 

Tutaj możesz przetestować działanie prezentowanego skryptu:

Obliczanie wartości dziesiętnej

 

dowolnej liczby binarnej

(C)2005 mgr Jerzy Wałaszek   I LO w Tarnowie

Wprowadź poniżej liczbę binarną

Oblicz wartość dziesiętną

...

 

Zadania

Zadanie 1 (łatwe)

Oblicz wartość następujących liczb binarnych:

1100000011

(2)

 =

    Testuj

.

Czyść

111000111

(2)

 =

    Testuj

.

10101010101

(2)

 =

    Testuj

.

11110000

(2)

 =

    Testuj

.

11001100110011

(2)

 =

    Testuj

.

 

Zadanie 2 (łatwe)

Przelicz na system dwójkowy podane poniżej liczby dziesiętne:

10

(10)

 =

(2)

    Testuj

.

Czyść

 100

(10)

 =

(2)

    Testuj

.

1000

(10)

 =

(2)

    Testuj

.

10000

(10)

 =

(2)

    Testuj

.

93673

(10)

 =

(2)

    Testuj

.

 

Zadanie 3 (dosyć łatwe)

Ile razy wzrośnie zakres n-bitowych liczb binarnych, gdy liczbę bitów zwiększymy o 1, 2, 3, 4, m bitów? Odpowiedź
uzasadnij.

 

Zobacz dalej...

Kody binarne

 | 

Dwójkowy system stałoprzecinkowy

 | 

Operacje arytmetyczne w systemie dwójkowym

 | 

Operacje logiczne na bitach

 | 

Konwersje dwójkowo ósemkowe i szesnastkowe

 

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji

 

GNU Free Documentation License.

Pytania proszę przesyłać na adres email: 

i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,

 

zablokuj je w swojej przeglądarce.

 

Informacje dodatkowe

111000111000111000111000111000111000111000111000

Dlaczego Jezus?

Sprawdź Teraz nasz Darmowy Kurs OnLine!

 

kursy.szukajacboga.pl

ZOBACZ WIĘCEJ

Reklama zamknięta przez 

Zgłoś tę reklamę

Dlaczego ta reklama? 

Reklama zamknięta przez 

Zgłoś tę reklamę

Dlaczego ta reklama? 

Reklama zamknięta przez 

Zgłoś tę reklamę

Dlaczego ta reklama? 

Dlaczego Jezus?

Sprawdź Teraz nasz Darmowy Kurs OnLine!

 

kursy.szukajacboga.pl

ZOBACZ WIĘCEJ

Reklama zamknięta przez 

Zgłoś tę reklamę

Dlaczego ta reklama? 

Reklama zamknięta przez 

Zgłoś tę reklamę

Dlaczego ta reklama?