რიცხვების წარმოდგენა კომპიუტერზე. რიცხვების წარმოდგენა კომპიუტერში დადებითი რიცხვებისთვის პირდაპირი, ინვერსიული და შემავსებელი კოდები ერთი და იგივეა, ე.ი.

16.03.2022

კომპიუტერულ ტექნოლოგიაში რეალური რიცხვები (განსხვავებით მთელი რიცხვებისგან) არის რიცხვები, რომლებსაც აქვთ წილადი ნაწილი.

მათი წერისას მძიმის ნაცვლად, ჩვეულებრივია წერტილის დაწერა. მაგალითად, რიცხვი 5 არის მთელი რიცხვი, ხოლო რიცხვები 5.1 და 5.0 რეალურია.

რიცხვების ჩვენების მოხერხებულობისთვის, რომლებიც იღებენ მნიშვნელობებს საკმაოდ ფართო დიაპაზონიდან (ანუ ძალიან მცირე და ძალიან დიდი), რიცხვების ჩაწერის ფორმა რიცხვების სისტემის საბაზისო წესრიგი. მაგალითად, ათობითი რიცხვი 1.25 შეიძლება წარმოდგენილი იყოს ამ ფორმით შემდეგნაირად:

1.25*10 0 = 0.125*10 1 = 0.0125*10 2 = ... ,
ან ასე:
12.5*10 -1 = 125.0*10 -2 = 1250.0*10 -3 = ... .

თუ მცურავი წერტილი მდებარეობს მანტისაში პირველამდე მნიშვნელოვანი ფიგურა, შემდეგ მანტისისთვის გამოყოფილი ციფრების ფიქსირებული რაოდენობით, უზრუნველყოფილია რიცხვის მნიშვნელოვანი ციფრების მაქსიმალური რაოდენობის ჩაწერა, ანუ მანქანაში რიცხვის წარმოდგენის მაქსიმალური სიზუსტე. აქედან გამომდინარეობს:

ეს არის ყველაზე მომგებიანი წარმომადგენლობა კომპიუტერისთვის. რეალური რიცხვებიდაურეკა ნორმალიზებული.

მანტისა და q-ary რიცხვის რიგი ჩვეულებრივ იწერება სისტემაში q ფუძით, ხოლო თავად ფუძე იწერება ათობითი სისტემაში.

ნორმალიზებული წარმოდგენის მაგალითები:

ათწილადი სისტემა ორობითი სისტემა

753.15 = 0.75315*10 3; -101.01 = -0.10101*2 11 (შეკვეთა 11 2 = 3 10)

0,000034 = -0,34*10 -4 ; -0.000011 = 0.11*2 -100 (შეკვეთა -100 2 = -410)

რეალური რიცხვები განსხვავებულად იწერება სხვადასხვა ტიპის კომპიუტერებში. ამ შემთხვევაში, კომპიუტერი, როგორც წესი, აძლევს პროგრამისტს შესაძლებლობას აირჩიოს რამდენიმე რიცხვის ფორმატიდან ყველაზე შესაფერისი კონკრეტული ამოცანისთვის - ოთხი, ექვსი, რვა ან ათი ბაიტის გამოყენებით.

მაგალითად, აქ მოცემულია IBM-თან თავსებადი პერსონალური კომპიუტერების მიერ გამოყენებული რეალური რიცხვების ფორმატების მახასიათებლები:

რეალური რიცხვების ფორმატები ზომა ბაიტებში აბსოლუტური მნიშვნელობების სავარაუდო დიაპაზონი მნიშვნელოვანი ათობითი ციფრების რაოდენობა
მარტოხელა 4 10 -45 ... 10 38 7 ან 8
რეალური 6 10 -39 ... 10 38 11 თუ 12
ორმაგი 8 10 -324 ... 10 308 15 თუ 16
გაფართოებული 10 10 -4932 ... 10 4932 19 თუ 20

ამ ცხრილიდან ირკვევა, რომ მცურავი პუნქტიანი რიცხვების წარმოდგენის ფორმა საშუალებას გაძლევთ დაწეროთ რიცხვები მაღალი სიზუსტითდა ძალიან ფართო სპექტრიდან.

მცურავი წერტილის ნომრების შენახვისას, ისინი გამოიყოფა მანტისას, მაჩვენებლის, რიცხვის ნიშნის და მაჩვენებლის ნიშნის ციფრები:

მოდით მაგალითებით ვაჩვენოთ, თუ როგორ იწერება ზოგიერთი რიცხვი ნორმალიზებული სახით ოთხბაიტიან ფორმატში, შვიდი ბიტით, რათა ჩაწეროთ რიგი.

1. რიცხვი 6.25 10 = 110.01 2 = 0.11001

  • 2 11:

2. რიცხვი -0,125 10 = -0,0012 = -0,1*2 -10 (უარყოფითი თანმიმდევრობა იწერება ორის დანამატში):

თემა: რიცხვების წარმოდგენა კომპიუტერზე. ფიქსირებული და მცურავი წერტილის ფორმატი. პირდაპირი, საპირისპირო და დამატებითი კოდი.

გამეორება: მთელი რიცხვების გადაყვანა ორობითი სისტემანოტაცია:

13 10 = 2 ანალოგიურად:

13 10 =1101 2

1345 10 =10101000001 2


მთელი რიცხვების წარმოდგენა კომპიუტერში.

კომპიუტერების მიერ დამუშავებული ყველა ინფორმაცია ინახება ორობითი ფორმით. როგორ ხდება ეს შენახვა?

კომპიუტერში შეყვანილი და მისი მუშაობის დროს წარმოქმნილი ინფორმაცია ინახება მის მეხსიერებაში. კომპიუტერის მეხსიერება შეიძლება ჩაითვალოს როგორც გრძელი გვერდი, რომელიც შედგება ცალკეული ხაზებისგან. თითოეულ ასეთ ხაზს ე.წ მეხსიერების უჯრედი .

უჯრედი - ეს არის კომპიუტერის მეხსიერების ნაწილი, რომელიც შეიცავს დამუშავებისთვის ხელმისაწვდომ ინფორმაციას ცალკე გუნდი პროცესორი. მინიმალურ მისამართებად მეხსიერების უჯრედს ეწოდება ბაიტი - 8 ორობითი ციფრი. ბაიტის თანმიმდევრულ რიცხვს უწოდებენ მას მისამართი .

უჯრედი (8 ბიტი = 1 ბაიტი)

მანქანა სიტყვა.

მეხსიერების უჯრედი შედგება გარკვეული რაოდენობის ერთგვაროვანი ელემენტებისაგან. თითოეულ ელემენტს შეუძლია იყოს ორიდან ერთ-ერთ მდგომარეობაში და ემსახურება რიცხვის ერთ-ერთი ციფრის წარმოდგენას. ამიტომ ყოველ უჯრედის ელემენტს უწოდებენ გამონადენი . უჯრედში ციფრების ნუმერაცია ჩვეულებრივ ხდება მარჯვნიდან მარცხნივ, ყველაზე მარჯვენა ციფრს აქვს სერიული ნომერი 0. ეს არის მეხსიერების უჯრედის დაბალი რიგის ციფრი, ყველაზე მნიშვნელოვან ციფრს აქვს სერიული ნომერი (n-1). n-ბიტიანი მეხსიერების უჯრედი.

ნებისმიერი ბიტის შინაარსი შეიძლება იყოს 0 ან 1.

მეხსიერების უჯრედის შიგთავსს ე.წ მანქანა სიტყვა. მეხსიერების უჯრედი დაყოფილია ციფრებად, რომელთაგან თითოეული ინახავს რიცხვის ციფრს.

მაგალითად, ყველაზე თანამედროვე პერსონალური კომპიუტერები არის 64 ბიტიანი, ანუ მანქანა სიტყვა და, შესაბამისად, მეხსიერების უჯრედი შედგება 64 ბიტისაგან ან ბიტები.

ცოტა - ინფორმაციის საზომი მინიმალური ერთეული. თითოეული ბიტი შეიძლება იყოს 0 ან 1. სცემეს ასევე მოუწოდა გამონადენი კომპიუტერის მეხსიერების უჯრედები.

ყველაზე პატარა მეხსიერების უჯრედის სტანდარტული ზომა არის რვა ბიტი, ანუ რვა ორობითი ციფრი. 8 ბიტიანი ნაკრები არის მონაცემთა წარმოდგენის ძირითადი ერთეული - ბაიტი.

ბაიტი (ინგლისური ბაიტიდან - syllable) - მანქანური სიტყვის ნაწილი, რომელიც შედგება 8 ბიტისაგან, დამუშავებული კომპიუტერში, როგორც მთლიანობაში. ეკრანზე არის მეხსიერების უჯრედი, რომელიც შედგება 8 ბიტისაგან - ეს არის ბაიტი. ყველაზე ნაკლებად მნიშვნელოვან ციფრს აქვს სერიული ნომერი 0, ყველაზე მნიშვნელოვან ციფრს აქვს სერიული ნომერი 7.

8 ბიტი = 1 ბაიტი

კომპიუტერის მეხსიერებაში რიცხვების წარმოსაჩენად გამოიყენება ორი ფორმატი: ფიქსირებული წერტილის ფორმატი და მცურავი წერტილის ფორმატი . წარმოდგენილია ფიქსირებული პუნქტის ფორმატში მხოლოდ მთელი რიცხვები , მცურავი წერტილის ფორმატში – რეალური რიცხვები (წილადი).

კომპიუტერის დახმარებით მოგვარებული პრობლემების აბსოლუტურ უმრავლესობაში, ბევრი მოქმედება დაყვანილია მთელ რიცხვებზე ოპერაციებამდე. ეს მოიცავს ეკონომიკური ხასიათის პრობლემებს, რომლებშიც მონაცემები არის აქციების რაოდენობა, თანამშრომლები, ნაწილები, მანქანებიდა ა.შ. მთელი რიცხვები გამოიყენება თარიღებისა და დროის აღსანიშნავად და სხვადასხვა ობიექტების დასანომრად: მასივის ელემენტები, მონაცემთა ბაზაში ჩანაწერები, მანქანების მისამართები და ა.შ.

მთელი რიცხვები შეიძლება წარმოდგენილი იყოს კომპიუტერში, როგორც ხელმოწერილი ან ხელმოუწერელი (დადებითი ან უარყოფითი).

ხელმოუწერელი მთელი რიცხვები ჩვეულებრივდაიკავოს ერთი ან ორი ბაიტი მეხსიერებაშიდა მიიღეთ მნიშვნელობები 00000000-დან ერთ ბაიტის ფორმატში 2 11111111-მდე 2 და ორმაგი ბაიტის ფორმატში - 00000000 00000000-დან 2 11111111 11111111-მდე 2 .

ხელმოწერილი მთელი რიცხვები ჩვეულებრივ იკავებს ერთ, ორ ან ოთხ ბაიტს კომპიუტერის მეხსიერებაში, ხოლო ყველაზე მარცხენა (ყველაზე მნიშვნელოვანი) ბიტი შეიცავს ინფორმაციას რიცხვის ნიშნის შესახებ. პლუს ნიშანი დაშიფრულია, როგორც ნული, ხოლო მინუს ნიშანი, როგორც ერთი.

1101 2 10101000001 2

ნიშანზე მინიჭებული ციფრი

(ამ შემთხვევაში +)

ყველაზე მნიშვნელოვანი ბიტი, რომელიც აკლია მთელ ბაიტს, ივსება ნულებით.

კომპიუტერულ ტექნოლოგიაში გამოიყენება მთელი რიცხვების ჩაწერის (კოდირების) სამი ფორმა:პირდაპირი კოდი , უკან კოდი , დამატებითი კოდი .

პირდაპირი კოდი არის რიცხვის გამოსახულება ბინარულ რიცხვთა სისტემაში, პირველი ციფრი ენიჭება რიცხვის ნიშანს. თუ რიცხვი დადებითია, მაშინ პირველი ციფრი არის 0, თუ რიცხვი უარყოფითია, პირველი ციფრი არის ერთი.

სინამდვილეში, პირდაპირი კოდი გამოიყენება თითქმის ექსკლუზიურად დადებითი რიცხვებისთვის.პირდაპირი ნომრის კოდის დასაწერად გჭირდებათ:

    რიცხვის წარმოდგენა ბინარში

    დაამატეთ ნულები 8-ბიტიანი ან 16-ბიტიანი უჯრედის ბოლო ყველაზე მნიშვნელოვან ციფრს

    შეავსეთ ყველაზე მნიშვნელოვანი ციფრი ნულით ან ერთით, რიცხვის ნიშნის მიხედვით.

მაგალითი:ნომერი 3 10 ინ პირდაპირი კოდიერთი ბაიტის ფორმატი წარმოდგენილი იქნება შემდეგნაირად:


ისლო -3 10 ერთი ბაიტის ფორმატის პირდაპირ კოდში ასე გამოიყურება:


დაბრუნების კოდი რადგან ორობითი რიცხვების სისტემაში დადებითი რიცხვი ემთხვევა პირდაპირ კოდს. უარყოფითი რიცხვისთვის, რიცხვის ყველა ციფრი იცვლება მათი საპირისპიროებით (1 0-ით, 0-ით 1-ით)შებრუნებული, და ერთი შედის ნიშნის ციფრში.

უარყოფითი რიცხვებისთვის გამოიყენება ე.წ. ეს განპირობებულია კომპიუტერული ტექნოლოგიით ნომრებზე ოპერაციების შესრულების მოხერხებულობით.

დამატებითი კოდი გამოიყენება ძირითადად კომპიუტერში უარყოფითი რიცხვების წარმოსაჩენად. ეს კოდი აკეთებს არითმეტიკული ოპერაციებიუფრო მოსახერხებელია მათი განხორციელებისთვის კომპიუტერული ტექნოლოგიით.

დამატებით კოდში, ისევე როგორც პირდაპირ კოდში, პირველი ციფრი გამოყოფილია რიცხვის ნიშნის წარმოსაჩენად. დადებითი რიცხვების პირდაპირი და შემავსებელი კოდები იგივეა. ვინაიდან პირდაპირი კოდი გამოიყენება თითქმის ექსკლუზიურად დადებითი რიცხვების წარმოსაჩენად, ხოლო კომპლემენტის კოდი გამოიყენება უარყოფითი რიცხვებისთვის, მაშინ თითქმის ყოველთვის, თუ პირველ ციფრში არის 1, მაშინ საქმე გვაქვს კომპლემენტის კოდთან. (ნული აღნიშნავს დადებით რიცხვს, ხოლო ერთი - უარყოფით რიცხვს).

უარყოფითი რიცხვისთვის დამატებითი კოდის მიღების ალგორითმი:

1. იპოვნეთ რიცხვის პირდაპირი კოდი (ნომრის გადაქცევა ორობით რიცხვთა სისტემაში, ხელმოუწერელ რიცხვში)

2. მიიღეთ დაბრუნების კოდი. შეცვალეთ თითოეული ნული ერთზე და თითოეული ნულზე (შეაბრუნეთ რიცხვი)

3. საპირისპირო კოდს დაამატეთ 1

მაგალითი: ვიპოვოთ ათობითი რიცხვის დამატებითი კოდი - 47 16-ბიტიან ფორმატში.

    ვიპოვოთ 47 რიცხვის ორობითი გამოსახულება (პირდაპირი კოდი).

2. შეატრიალეთ ეს რიცხვი (შებრუნებული კოდი). 3. საპირისპირო კოდს დაამატეთ 1 და მიიღეთ ამ ნომრის ჩანაწერი RAM-ში.

მნიშვნელოვანი!

დადებითი რიცხვებისთვის პირდაპირი, ინვერსიული და შემავსებელი კოდები ერთი და იგივეა, ე.ი. პირდაპირი კოდი. არ არის საჭირო დადებითი რიცხვების შებრუნება კომპიუტერზე მათი წარმოსადგენად!

რატომ გამოიყენება?დამატებითი კოდი უარყოფითი რიცხვის წარმოსაჩენად?

ეს აადვილებს მათემატიკური ოპერაციების შესრულებას. მაგალითად, ჩვენ გვაქვს ორი რიცხვი, რომელიც წარმოდგენილია პირდაპირ კოდში. ერთი რიცხვი დადებითია, მეორე უარყოფითი და ეს რიცხვები უნდა დაემატოს. თუმცა, თქვენ არ შეგიძლიათ უბრალოდ დაკეცოთ ისინი. ჯერ კომპიუტერმა უნდა გაარკვიოს რა რიცხვებია. როდესაც გაირკვა, რომ ერთი რიცხვი უარყოფითია, მან უნდა შეცვალოს შეკრების ოპერაცია გამოკლების მოქმედებით. შემდეგ, მანქანამ უნდა დაადგინოს რომელი რიცხვი უფრო დიდია აბსოლუტური მნიშვნელობით, რათა გაარკვიოს შედეგის ნიშანი და გადაწყვიტოს რა გამოაკლდეს რას. შედეგი არის რთული ალგორითმი. გაცილებით ადვილია რიცხვების დამატება, თუ უარყოფითი რიცხვები გარდაიქმნება ორი კომპლიმენტად.

პრაქტიკული დავალება:

დავალება 1. ჩაწერეთ შემდეგი ათობითი რიცხვების წინსვლის, უკანა და შემავსებელი კოდების გამოყენებით8 ბიტიანიუჯრედი:

64 10, - 120 10

დავალება 2. 16-ბიტიან ქსელში ჩაწერეთ შემდეგი ათობითი რიცხვების წინსვლის, უკუ და შეავსების კოდები

57 10 - 117 10 - 200 10

რიცხვითი მონაცემები მუშავდება კომპიუტერში ბინარული რიცხვების სისტემის გამოყენებით. რიცხვები ინახება კომპიუტერის მეხსიერებაში ორობითი კოდით, ანუ ნულების და ერთეულების თანმიმდევრობით და შეიძლება წარმოდგენილი იყოს ფიქსირებული ან მცურავი წერტილის ფორმატში.

მთელი რიცხვები ინახება მეხსიერებაში ფიქსირებული წერტილის ფორმატში. რიცხვების წარმოდგენის ამ ფორმატით, მეხსიერების რეესტრი, რომელიც შედგება მეხსიერების რვა უჯრედისგან (8 ბიტი) გამოიყოფა არაუარყოფითი მთელი რიცხვების შესანახად. მეხსიერების უჯრედის თითოეული ციფრი ყოველთვის შეესაბამება ნომრის ერთსა და იმავე ციფრს, ხოლო მძიმე მდებარეობს მარჯვნივ ყველაზე ნაკლებად მნიშვნელოვანი ციფრის შემდეგ და ბიტების ბადის გარეთ. მაგალითად, ნომერი 110011012 შეინახება მეხსიერების რეესტრში შემდეგნაირად:

ცხრილი 4

არაუარყოფითი მთელი რიცხვის მაქსიმალური მნიშვნელობა, რომელიც შეიძლება შეინახოს რეესტრში ფიქსირებული წერტილის ფორმატში, შეიძლება განისაზღვროს ფორმულით: 2n – 1, სადაც n არის რიცხვის ციფრების რაოდენობა. მაქსიმალური რიცხვი ტოლი იქნება 28 - 1 = 25510 = 111111112 და მინიმალური 010 = 000000002. ამრიგად, არაუარყოფითი მთელი რიცხვების ცვლილებების დიაპაზონი იქნება 0-დან 25510-მდე.

ათობითი სისტემისგან განსხვავებით, ორობითი რიცხვების სისტემას ორობითი რიცხვის კომპიუტერულ წარმოდგენაში არ აქვს სიმბოლოები, რომლებიც მიუთითებს რიცხვის ნიშანზე: დადებითი (+) ან უარყოფითი (-), შესაბამისად, ორობით სისტემაში ხელმოწერილი მთელი რიცხვების წარმოსადგენად, ორი. გამოიყენება რიცხვის წარმოდგენის ფორმატები: რიცხვის მნიშვნელობის ფორმატი ხელმოწერილი და ორის შემავსებელი ფორმატი. პირველ შემთხვევაში, მეხსიერების ორი რეგისტრი (16 ბიტი) გამოიყოფა ხელმოწერილი მთელი რიცხვების შესანახად, ხოლო ყველაზე მნიშვნელოვანი ციფრი (მარცხნივ) გამოიყენება რიცხვის ნიშნად: თუ რიცხვი დადებითია, მაშინ ნიშნის ბიტზე 0 იწერება. თუ რიცხვი უარყოფითია, მაშინ 1. მაგალითად, ნომერი 53610 = 00000010000110002 წარმოდგენილი იქნება მეხსიერების რეგისტრებში შემდეგი ფორმით:

ცხრილი 5

და უარყოფითი რიცხვი -53610 = 10000010000110002 სახით:

ცხრილი 6

მაქსიმალური დადებითი რიცხვი ან მინიმალური უარყოფითი რიცხვი ხელმოწერილი რიცხვის მნიშვნელობის ფორმატში (თითო ნიშნის ერთი ციფრის წარმოდგენის გათვალისწინებით) არის 2n-1 – 1 = 216-1 – 1 = 215 – 1 = 3276710 = 11111111111111112 და რიცხვების დიაპაზონი. იქნება - 3276710-დან 32767-მდე.

ყველაზე ხშირად, ორობით სისტემაში ხელმოწერილი მთელი რიცხვების წარმოსადგენად, გამოიყენება ორი კომპლემენტის კოდის ფორმატი, რომელიც საშუალებას გაძლევთ შეცვალოთ გამოკლების არითმეტიკული ოპერაცია კომპიუტერში დამატების ოპერაციით, რაც მნიშვნელოვნად ამარტივებს მიკროპროცესორის სტრუქტურას და ზრდის მის შესრულებას. .

ამ ფორმატში უარყოფითი მთელი რიცხვების წარმოსადგენად გამოიყენება ორის კომპლემენტის კოდი, რომელიც არის უარყოფითი რიცხვის ნულამდე მოდული. უარყოფითი მთელი რიცხვის ორი კომპლიმენტად გადაქცევა ხორციელდება შემდეგი ოპერაციების გამოყენებით:


1) რიცხვის მოდული ჩაწერეთ პირდაპირი კოდით n (n = 16) ორობითი ციფრით;

2) მიიღეთ რიცხვის საპირისპირო კოდი (შეატრიალეთ რიცხვის ყველა ციფრი, ე.ი. ჩაანაცვლეთ ყველა ერთეული ნულებით, ხოლო ნულები ერთებით);

3) მიღებულ საპირისპირო კოდს დაამატეთ ერთი ყველაზე ნაკლებად მნიშვნელოვანი ციფრი.

მაგალითად, ნომრისთვის -53610 ამ ფორმატში, მოდული იქნება 00000010000110002, საპასუხო კოდი იქნება 1111110111100111, ხოლო დამატებითი კოდი იქნება 11111110111101000.

უნდა გვახსოვდეს, რომ დადებითი რიცხვის დანამატი თავად რიცხვია.

ხელმოწერილი მთელი რიცხვების შესანახად, გარდა 16-ბიტიანი კომპიუტერის წარმოდგენისა, როდესაც გამოიყენება მეხსიერების ორი რეგისტრი(ამ რიცხვის ფორმატს ასევე უწოდებენ მოკლე ხელმოწერის ფორმატს), გამოიყენება საშუალო და გრძელი ხელმოწერის მთელი რიცხვის ფორმატები. რიცხვების შუა რიცხვების ფორმატში წარმოსაჩენად გამოიყენება ოთხი რეგისტრი (4 x 8 = 32 ბიტი), ხოლო გრძელი რიცხვის ფორმატში რიცხვების წარმოსადგენად გამოიყენება რვა რეგისტრი (8 x 8 = 64 ბიტი). მნიშვნელობების დიაპაზონები საშუალო და გრძელი რიცხვების ფორმატებისთვის იქნება შესაბამისად: -(231 – 1) ... + 231 – 1 და -(263-1) ... + 263 – 1.

რიცხვების კომპიუტერულ წარმოდგენას ფიქსირებული წერტილის ფორმატში აქვს თავისი დადებითი და უარყოფითი მხარეები. TO სარგებელიმოიცავს რიცხვების წარმოდგენის სიმარტივეს და არითმეტიკული მოქმედებების განხორციელების ალგორითმებს, ნაკლოვანებებს წარმოადგენს რიცხვების წარმოდგენის სასრული დიაპაზონი, რომელიც შეიძლება არასაკმარისი იყოს პრაქტიკული ხასიათის მრავალი პრობლემის გადასაჭრელად (მათემატიკური, ეკონომიკური, ფიზიკური და ა.შ.).

რეალური რიცხვები (სასრული და უსასრულო ათწილადები) მუშავდება და ინახება კომპიუტერში მცურავი წერტილის ფორმატში. ამ რიცხვის წარმოდგენის ფორმატით, ათობითი წერტილის პოზიცია ჩანაწერში შეიძლება შეიცვალოს. ნებისმიერი რეალური რიცხვი K მცურავი წერტილის ფორმატში შეიძლება წარმოდგენილი იყოს როგორც:

სადაც A არის რიცხვის მანტისა; თ – რიცხვითი სისტემის საფუძველი; p - ნომრის შეკვეთა.

გამოხატვა (2.7) ათობითი რიცხვების სისტემისთვის მიიღებს ფორმას:

ბინარისთვის -

ოქტალისთვის -

თექვსმეტობით -

რიცხვების წარმოდგენის ამ ფორმას ასევე უწოდებენ ნორმალური . თანმიმდევრობის ცვლილებით, რიცხვში მძიმით ინაცვლებს, ანუ თითქოს ცურავს მარცხნივ ან მარჯვნივ. ამიტომ, რიცხვების წარმოდგენის ნორმალური ფორმა ეწოდება მცურავი წერტილის ფორმა. ათობითი რიცხვი 15.5, მაგალითად, მცურავი წერტილის ფორმატში შეიძლება იყოს წარმოდგენილი: 0.155 102; 1.55 101; 15,5 100; 155.0 10-1; 1550.0 10-2 და ა.შ. ათწილადის 15.5 მცურავი წერტილის ეს ფორმა არ გამოიყენება წერისას კომპიუტერული პროგრამებიდა მათი შეყვანა კომპიუტერში (კომპიუტერის შეყვანის მოწყობილობები აღიქვამენ მხოლოდ ხაზოვან მონაცემთა ჩაწერას). ამის საფუძველზე გამოხატვა (2.7) ათობითი რიცხვების წარმოსაჩენად და კომპიუტერში მათი შეყვანისთვის გარდაიქმნება ფორმაში.

სადაც P არის რიცხვების რიგი,

ანუ რიცხვითი სისტემის 10-ის ფუძის ნაცვლად წერენ ასო E-ს, მძიმის ნაცვლად წერტილს და გამრავლების ნიშანი არ არის განთავსებული. ამრიგად, რიცხვი 15.5 მცურავი წერტილით და წრფივი ფორმატით (კომპიუტერული წარმოდგენა) დაიწერება: 0.155E2; 1.55E1; 15.5E0; 155.0E-1; 1550.0E-2 და ა.შ.

რიცხვების სისტემის მიუხედავად, ნებისმიერი რიცხვი მცურავი წერტილის სახით შეიძლება წარმოდგენილი იყოს რიცხვების უსასრულო რაოდენობით. ჩაწერის ამ ფორმას ე.წ არანორმალიზებული . მცურავი პუნქტიანი რიცხვების ცალსახა წარმოდგენისთვის გამოიყენება რიცხვის ჩაწერის ნორმალიზებული ფორმა, რომელშიც რიცხვის მანტისა უნდა აკმაყოფილებდეს პირობას.

სადაც |A| - რიცხვის მანტისას აბსოლუტური მნიშვნელობა.

პირობა (2.9) ნიშნავს, რომ მანტისა უნდა იყოს სათანადო წილადი და ჰქონდეს არანულოვანი ციფრი ათწილადის წერტილის შემდეგ, ან სხვა სიტყვებით რომ ვთქვათ, თუ მანტისას არ აქვს ნული ათწილადის წერტილის შემდეგ, მაშინ რიცხვს ეწოდება ნორმალიზებული. . ასე რომ, რიცხვი 15.5 ნორმალიზებულ ფორმაში (ნორმალიზებული მანტისა) მცურავი წერტილის სახით ასე გამოიყურება: 0.155 102, ანუ ნორმალიზებული მანტისა იქნება A = 0.155 და რიგი P = 2, ან რიცხვის კომპიუტერულ წარმოდგენაში 0.155E2.

მცურავი წერტილის რიცხვებს აქვთ ფიქსირებული ფორმატი და იკავებს კომპიუტერის მეხსიერების ოთხ (32 ბიტი) ან რვა ბაიტს (64 ბიტი). თუ რიცხვი იკავებს 32 ბიტს კომპიუტერის მეხსიერებაში, მაშინ ეს არის ჩვეულებრივი სიზუსტის რიცხვი, თუ ის 64 ბიტია, მაშინ ეს არის ორმაგი სიზუსტის რიცხვი. მცურავი წერტილის რიცხვის დაწერისას, ბიტები გამოიყოფა მანტისას ნიშნის, მაჩვენებლის ნიშნის, მანტისას და მაჩვენებლის შესანახად. რიცხვის მიმდევრობით გამოყოფილი ციფრების რაოდენობა განსაზღვრავს რიცხვების ცვალებადობის დიაპაზონს, ხოლო მანტისას შესანახად გამოყოფილი ციფრების რაოდენობა განსაზღვრავს რიცხვის მითითების სიზუსტეს.

მცურავი წერტილის ფორმატში წარმოდგენილ რიცხვებზე არითმეტიკული მოქმედებების (შეკრება და გამოკლება) შესრულებისას ხორციელდება შემდეგი პროცედურა (ალგორითმი):

1) რიცხვების რიგი, რომლებზედაც შესრულებულია არითმეტიკული მოქმედებები, გასწორებულია (მცირე აბსოლუტური რიცხვის რიგი იზრდება უფრო დიდი აბსოლუტური რიცხვის რიგითამდე, ხოლო მანტისა მცირდება იმავე რაოდენობით);

2) არითმეტიკული მოქმედებები სრულდება რიცხვების მანტისებზე;

3) მიღებული შედეგი ნორმალიზდება.

პრაქტიკული ნაწილი

მომსახურების მიზანი. ონლაინ კალკულატორი შექმნილია რეალური რიცხვების წარმოსაჩენად მცურავი წერტილის ფორმატში.

ნომრების შეყვანის წესები

  1. ათობითი რიცხვების სისტემაში რიცხვები შეიძლება შეიყვანოთ წილადის გარეშე ან წილადი ნაწილით (234234.455).
  2. ორობითი რიცხვების სისტემაში რიცხვები შედგება მხოლოდ ციფრებისგან 0 და 1 (10100.01).
  3. თექვსმეტობითი რიცხვების სისტემაში რიცხვები შედგება ციფრებისგან 0...9 და A...F ასოებისგან.
  4. თქვენ ასევე შეგიძლიათ მიიღოთ კოდის საპირისპირო წარმოდგენა (დან თექვსმეტობითი სისტემაათობითი გაანგარიშება, 40B00000)
მაგალითი No1. წარმოადგინეთ რიცხვი 133.54 მცურავი პუნქტის სახით.
გამოსავალი. წარმოვიდგინოთ რიცხვი 133.54 ნორმალიზებული ექსპონენციალური ფორმით:
1.3354*10 2 = 1.3354* ექსპლუატაცია 10 2
რიცხვი 1.3354*exp 10 2 შედგება ორი ნაწილისგან: მანტისა M=1.3354 და მაჩვენებლის 10 =2
თუ მანტისა არის 1 ≤ M დიაპაზონში რიცხვის წარმოდგენა დენორმალიზებული ექსპონენციალური ფორმით.
თუ მანტისა არის 0,1 ≤ M დიაპაზონში, წარმოვადგენთ რიცხვს დენორმალიზებული ექსპონენციალური ფორმით: 0,13354*exp 10 3

მაგალითი No2. წარმოადგინეთ ბინარული რიცხვი 101.10 2 ნორმალიზებული ფორმით, დაწერილი 32-ბიტიანი IEEE754 სტანდარტით.
გამოსავალი.
ბინარული მცურავი წერტილის რიცხვის წარმოდგენა ექსპონენციალური ნორმალიზებული ფორმით.
მოდით გადავიტანოთ ნომრის 2 ციფრი მარჯვნივ. შედეგად, ჩვენ მივიღეთ ექსპონენციალური ნორმალიზებული ორობითი რიცხვის ძირითადი კომპონენტები:
მანტისა M=1.011
მაჩვენებლის ექსპლუატაცია 2 =2
გადაიყვანეთ ორობითი ნორმალიზებული რიცხვი 32-ბიტიან IEEE 754 ფორმატში.
პირველი ბიტი გამოყოფილია რიცხვის ნიშნის აღსანიშნავად. ვინაიდან რიცხვი დადებითია, პირველი ბიტი არის 0
შემდეგი 8 ბიტი (მე-2-დან მე-9-მდე) დაცულია მაჩვენებლისთვის.
მაჩვენებლის ნიშნის დასადგენად, რათა თავიდან იქნას აცილებული სხვა ნიშნის ბიტის შემოღება, დაამატეთ ოფსეტი ნახევარ ბაიტის მაჩვენებელს +127. ასე რომ, ჩვენი მაჩვენებელია: 2 + 127 = 129
გადავიყვანოთ მაჩვენებლის ორობითი წარმოდგენა.
დარჩენილი 23 ბიტი დაცულია მანტისისთვის. ნორმალიზებულ ბინარულ მანტისაში, პირველი ბიტი ყოველთვის 1-ის ტოლია, რადგან რიცხვი 1 ≤ M დიაპაზონშია მთელი რიცხვის ნაწილის გადასაყვანად, თქვენ უნდა გაამრავლოთ რიცხვის ციფრი შესაბამისი ციფრის სიმძლავრეზე.
01100000000000000000000 = 2 22 *0 + 2 21 *1 + 2 20 *1 + 2 19 *0 + 2 18 *0 + 2 17 *0 + 2 16 *0 + 2 15 *0 + 2 14 *0 + 2 13 *0 + 2 12 *0 + 2 11 *0 + 2 10 *0 + 2 9 *0 + 2 8 *0 + 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *0 = 0 + 2097152 + 1048576 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 3145728
ათობითი კოდში მანტისა გამოიხატება როგორც 3145728
შედეგად, რიცხვი 101.10 წარმოდგენილია IEEE 754-ში ერთი სიზუსტით ტოლია.
გადავიყვანოთ თექვსმეტობით გამოსახულებად.
გავყოთ წყარო კოდი 4 კატეგორიის ჯგუფებად.
2 = 0100 0000 1011 0000 0000 0000 0000 0000 2
ჩვენ ვიღებთ ნომერს:
0100 0000 1011 0000 0000 0000 0000 0000 2 = 40B00000 16

ვისაც ოდესმე უფიქრია გამხდარიყო "IT სპეციალისტი" ან სისტემის ადმინისტრატორი, და უბრალოდ ბედთან დაკავშირება იმის ცოდნასთან, თუ როგორ არის წარმოდგენილი რიცხვები, აბსოლუტურად აუცილებელია. ყოველივე ამის შემდეგ, სწორედ ამაზეა დაფუძნებული პროგრამირების ენები. დაბალი დონე, როგორიცაა ასამბლერი. ამიტომ, დღეს ჩვენ შევხედავთ რიცხვების წარმოდგენას კომპიუტერში და მათ განთავსებას მეხსიერების უჯრედებში.

აღნიშვნა

თუ ამ სტატიას კითხულობთ, ალბათ უკვე იცით ეს, მაგრამ გამეორება ღირს. ყველა მონაცემი შედის პერსონალური კომპიუტერიშენახული ბინარში ეს ნიშნავს, რომ ნებისმიერი რიცხვი უნდა იყოს წარმოდგენილი შესაბამისი ფორმით, ანუ შედგება ნულებისაგან და ერთებისგან.

ჩვენთვის ნაცნობი ათობითი რიცხვები კომპიუტერისთვის გასაგებ ფორმად გადასაყვანად, თქვენ უნდა გამოიყენოთ ქვემოთ აღწერილი ალგორითმი. ასევე არსებობს სპეციალიზებული კალკულატორები.

ასე რომ, იმისათვის, რომ რიცხვი გადავიტანოთ ორობით რიცხვთა სისტემაში, უნდა ავიღოთ ჩვენ მიერ არჩეული მნიშვნელობა და გავყოთ 2-ზე. ამის შემდეგ მივიღებთ შედეგს და ნარჩენს (0 ან 1). შედეგს ისევ ვყოფთ 2-ზე და ვიხსენებთ დანარჩენს. ეს პროცედურაჩვენ უნდა გავიმეოროთ მანამ, სანამ საბოლოო შედეგი ასევე არ იქნება 0 ან 1. შემდეგ ჩვენ ვწერთ საბოლოო მნიშვნელობას და ნაშთებს საპირისპირო თანმიმდევრობით, როგორც მივიღეთ.

ზუსტად ასეა წარმოდგენილი რიცხვები კომპიუტერში. ნებისმიერი რიცხვი იწერება ორობითი ფორმით და შემდეგ იკავებს მეხსიერების უჯრედს.

მეხსიერება

როგორც უკვე იცით, ინფორმაციის უმცირესი ერთეული არის 1 ბიტი. როგორც უკვე გავარკვიეთ, რიცხვები წარმოდგენილია კომპიუტერში ბინარულ ფორმატში. ამრიგად, მეხსიერების თითოეული ბიტი დაიკავებს ერთი მნიშვნელობით - 1 ან 0.

უჯრედები გამოიყენება შესანახად. თითოეული ასეთი ერთეული შეიცავს 8 ბიტამდე ინფორმაციას. აქედან გამომდინარე, შეგვიძლია დავასკვნათ, რომ მეხსიერების თითოეულ სეგმენტში მინიმალური მნიშვნელობა შეიძლება იყოს 1 ბაიტი ან იყოს რვანიშნა ორობითი რიცხვი.

მთელი

ბოლოს მივდივართ კომპიუტერში მონაცემების პირდაპირ განთავსებამდე. როგორც უკვე აღვნიშნეთ, პირველი რასაც პროცესორი აკეთებს არის ინფორმაციის ორობით ფორმატში გადაყვანა და მხოლოდ ამის შემდეგ მოთავსება მეხსიერებაში.

ჩვენ დავიწყებთ უმარტივეს ვარიანტს, რომელიც არის მთელი რიცხვების წარმოდგენა კომპიუტერში. კომპიუტერის მეხსიერება ამ პროცესისთვის გამოყოფს უჯრედების სასაცილოდ მცირე რაოდენობას - მხოლოდ ერთს. ამრიგად, მაქსიმუმ ერთი სლოტი შეიძლება შეიცავდეს მნიშვნელობებს 0-დან 11111111-მდე. მოდით გადავიყვანოთ მაქსიმალური რიცხვი ჩვენთვის ნაცნობ სანოტო ფორმაში.
X = 1 × 2 7 + 1 × 2 6 + 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 1 × 2 8 - 1 = 255 .

ახლა ჩვენ ვხედავთ, რომ მეხსიერების ერთი უჯრედი შეიძლება შეიცავდეს მნიშვნელობას 0-დან 255-მდე. თუმცა, ეს ეხება ექსკლუზიურად არაუარყოფით მთელ რიცხვებს. თუ კომპიუტერს სჭირდება უარყოფითი მნიშვნელობის დაწერა, ყველაფერი ცოტა სხვაგვარად იმუშავებს.

უარყოფითი რიცხვები

ახლა ვნახოთ, როგორ არის წარმოდგენილი რიცხვები კომპიუტერში, თუ ისინი უარყოფითია. ნულზე ნაკლები მნიშვნელობის დასაკმაყოფილებლად გამოიყოფა მეხსიერების ორი უჯრედი ან 16 ბიტი ინფორმაცია. ამ შემთხვევაში, 15 შედის თავად რიცხვის ქვეშ, ხოლო პირველი (მარცხნივ) ბიტი მოცემულია შესაბამისი ნიშნის ქვეშ.

თუ რიცხვი უარყოფითია, მაშინ იწერება "1", დადებითის შემთხვევაში, მაშინ "0". დამახსოვრების გასაადვილებლად შეგვიძლია შემდეგი ანალოგიის დახატვა: თუ არის ნიშანი, მაშინ ვსვამთ 1-ს, თუ ის არ არის, მაშინ არაფერი (0).

დარჩენილი 15 ბიტი ინფორმაცია ნაწილდება ნომერზე. წინა შემთხვევის მსგავსად, მათ შეუძლიათ მაქსიმუმ თხუთმეტი ერთეულის განთავსება. აღსანიშნავია, რომ უარყოფითი და დადებითი რიცხვების ჩაწერა მნიშვნელოვნად განსხვავდება ერთმანეთისგან.

იმისათვის, რომ მეხსიერების 2 უჯრედში ნულზე მეტი ან ტოლი მნიშვნელობის დასაყენებლად გამოიყენება ე.წ. პირდაპირი კოდი. ეს ოპერაცია შესრულებულია ისევე, როგორც აღწერილია, ხოლო მაქსიმალური A = 32766, თუ გამოიყენება, მაშინვე მინდა აღვნიშნო, რომ ამ შემთხვევაში "0" ეხება დადებითს.

მაგალითები

კომპიუტერის მეხსიერებაში მთელი რიცხვების წარმოდგენა არც ისე რთული ამოცანაა. მიუხედავად იმისა, რომ ეს ცოტა უფრო რთულდება, თუ ვსაუბრობთ უარყოფით მნიშვნელობაზე. ნულზე ნაკლები რიცხვის დასაწერად გამოიყენება ორის კომპლემენტის კოდი.

მის მისაღებად, მანქანა ასრულებს მთელ რიგ დამხმარე ოპერაციებს.

  1. პირველ რიგში, უარყოფითი რიცხვის მოდული იწერება ბინარული რიცხვი. ანუ კომპიუტერს ახსოვს მსგავსი, მაგრამ დადებითი მნიშვნელობა.
  2. მეხსიერების თითოეული ბიტი შემდეგ ინვერსიულია. ამისთვის ყველა მათგანი იცვლება ნულებით და პირიქით.
  3. შედეგს დაამატეთ "1". ეს იქნება დამატებითი კოდი.

მოვიყვანოთ ნათელი მაგალითი. გვქონდეს რიცხვი X = - 131. ჯერ ვიღებთ მის მოდულს |X|= 131. შემდეგ გადავიყვანთ ორობით სისტემაში და ვწერთ 16 უჯრედში. ვიღებთ X = 0000000010000011. ინვერსიის შემდეგ X = 1111111101111100. ჩვენ მას ვუმატებთ „1“-ს და ვიღებთ დაბრუნების კოდს X=1111111101111101. 16-ბიტიან მეხსიერების უჯრედში ჩასაწერად მინიმალური რიცხვია X = - (2 15) = - 32767.

გრძელი მთელი რიცხვები

როგორც ხედავთ, კომპიუტერში რეალური რიცხვების წარმოდგენა არც ისე რთულია. თუმცა, განხილული დიაპაზონი შეიძლება არ იყოს საკმარისი ოპერაციების უმეტესობისთვის. ამიტომ, იმისათვის, რომ მოათავსოთ დიდი რაოდენობით, კომპიუტერი გამოყოფს 4 უჯრედს, ანუ 32 ბიტს მეხსიერებიდან.

ჩაწერის პროცესი აბსოლუტურად არ განსხვავდება ზემოთ წარმოდგენილიდან. ასე რომ, ჩვენ უბრალოდ მივცემთ რიცხვების დიაპაზონს, რომელიც შეიძლება შეინახოს ამ ტიპში.

X max =2,147,483,647.

X წთ = - 2 147 483 648.

უმეტეს შემთხვევაში, ეს მნიშვნელობები საკმარისია მონაცემებით ოპერაციების ჩასაწერად და შესასრულებლად.

კომპიუტერში რეალური რიცხვების წარმოდგენას აქვს თავისი დადებითი და უარყოფითი მხარეები. ერთ მხარეს, ამ ტექნიკასაადვილებს ოპერაციების შესრულებას მთელ რიცხვებს შორის, რაც მნიშვნელოვნად აჩქარებს პროცესორს. მეორეს მხრივ, ეს დიაპაზონი არ არის საკმარისი ეკონომიკის, ფიზიკის, არითმეტიკისა და სხვა მეცნიერებების უმეტესი პრობლემების გადასაჭრელად. ამიტომ, ახლა ჩვენ განვიხილავთ სხვა ტექნიკას სუპერ სიდიდებისთვის.

მცურავი წერტილი

ეს არის ბოლო, რაც უნდა იცოდეთ კომპიუტერში რიცხვების წარმოდგენის შესახებ. ვინაიდან წილადების წერისას არის მათში ათობითი წერტილის პოზიციის განსაზღვრის პრობლემა, კომპიუტერში ასეთი ციფრების განსათავსებლად გამოიყენება სამეცნიერო აღნიშვნა.

ნებისმიერი რიცხვი შეიძლება წარმოდგენილი იყოს შემდეგი სახით X = m * p n სადაც m არის რიცხვის მანტისა, p არის რიცხვითი სისტემის საფუძველი და n არის რიცხვის მაჩვენებელი.

მცურავი პუნქტიანი რიცხვების ჩაწერის სტანდარტიზებისთვის გამოიყენება შემდეგი პირობა, რომლის მიხედვითაც მანტისის მოდული უნდა იყოს 1/ნ-ზე მეტი ან ტოლი და 1-ზე ნაკლები.

მოდით მივცეთ რიცხვი 666.66. მოდით დავაყენოთ ექსპონენციალური ფორმით. გამოდის X = 0.66666 * 10 3. P = 10 და n = 3.

მცურავი წერტილის მნიშვნელობები ჩვეულებრივ გამოიყოფა 4 ან 8 ბაიტი (32 ან 64 ბიტი). პირველ შემთხვევაში მას ეწოდება რეგულარული სიზუსტის რიცხვი, ხოლო მეორე შემთხვევაში მას ორმაგი სიზუსტის რიცხვი.

ციფრების შესანახად გამოყოფილი 4 ბაიტიდან 1 (8 ბიტი) გამოიყოფა ბრძანებისა და მისი ნიშნის შესახებ მონაცემებისთვის, ხოლო 3 ბაიტი (24 ბიტი) გამოიყენება მანტისას და მისი ნიშნის შესანახად იმავე პრინციპების შესაბამისად, როგორც მთელი რიცხვების მნიშვნელობებისთვის. . ამის გაცნობიერებით, ჩვენ შეგვიძლია მარტივი გამოთვლების განხორციელება.

მაქსიმალური მნიშვნელობა n = 1111111 2 = 127 10. მასზე დაყრდნობით შეგვიძლია მივიღოთ რიცხვის მაქსიმალური ზომა, რომელიც შეიძლება შეინახოს კომპიუტერის მეხსიერებაში. X=2 127 . ახლა ჩვენ შეგვიძლია გამოვთვალოთ მაქსიმალური მანტისა. ის ტოლი იქნება 2 23 - 1 ≥ 2 23 = 2 (10 × 2.3) ≥ 1000 2.3 = 10 (3 × 2.3) ≥ 10 7. შედეგად მივიღეთ სავარაუდო მნიშვნელობა.

თუ ახლა გავაერთიანებთ ორივე გამოთვლას, მივიღებთ მნიშვნელობას, რომელიც დაკარგვის გარეშე შეიძლება ჩაიწეროს მეხსიერების 4 ბაიტში. ის ტოლი იქნება X = 1.701411 * 10 38. დარჩენილი რიცხვები გაუქმდა, რადგან ეს არის ზუსტად ის სიზუსტე, რომელიც გვაძლევს საშუალებას ამ მეთოდითჩანაწერები.

ორმაგი სიზუსტე

ვინაიდან ყველა გამოთვლა წინა აბზაცში იყო ახსნილი და ახსნილი, აქ ძალიან მოკლედ გეტყვით ყველაფერს. ორმაგი სიზუსტის რიცხვებისთვის, როგორც წესი, არის 11 ბიტი მაჩვენებლისა და მისი ნიშნისთვის, ასევე 53 ბიტი მანტისისთვის.

P = 1111111111 2 = 1023 10.

M = 2 52 -1 = 2 (10*5.2) = 1000 5.2 = 10 15.6. ვამრგვალებთ და ვიღებთ მაქსიმალურ რიცხვს X = 2 1023 ზუსტი "მ"-მდე.

ვიმედოვნებთ, რომ ჩვენ მიერ მოწოდებული ინფორმაცია კომპიუტერში მთელი და რეალური რიცხვების წარმოდგენის შესახებ გამოგადგებათ სწავლაში და ოდნავ მაინც იქნება უფრო მკაფიო, ვიდრე ჩვეულებრივ სახელმძღვანელოებში წერია.