1.1.1-masala
N = 1254 butun musbat son berilgan. Mashina razryadi k = 16 ga teng. Ushbu manfiy emas butun sonni mashina xotirasida ifodalang (avval o‘tkazish algoritmini keltiring, keyin algoritm qadamlari bo‘yicha masalani yeching).
CodeStep
1.1.1 · MAVZU
20 ta masala. Masala shartini ko‘rib, yechishni boshlang.
N = 1254 butun musbat son berilgan. Mashina razryadi k = 16 ga teng. Ushbu manfiy emas butun sonni mashina xotirasida ifodalang (avval o‘tkazish algoritmini keltiring, keyin algoritm qadamlari bo‘yicha masalani yeching).
N = 2541 butun musbat son berilgan. Mashina razryadi k = 16 ga teng. Ushbu manfiy emas butun sonni mashina xotirasida ifodalang.
N = 3675 butun musbat son berilgan. Mashina razryadi k = 15 ga teng. Ushbu manfiy emas butun sonni mashina xotirasida ifodalang.
N = 7458 butun musbat son berilgan. Mashina razryadi k = 17 ga teng. Ushbu manfiy emas butun sonni mashina xotirasida ifodalang.
N = 7654 butun musbat son berilgan. Mashina razryadi k = 18 ga teng. Ushbu manfiy emas butun sonni mashina xotirasida ifodalang.
N = -7654 butun manfiy son berilgan. Mashina razryadi k = 18 ga teng. Ushbu manfiy butun sonni mashina xotirasida ifodalang.
N = -1025 butun manfiy son berilgan. Mashina razryadi k = 16 ga teng. Ushbu manfiy butun sonni mashina xotirasida ifodalang.
N = -5232 butun manfiy son berilgan. Mashina razryadi k = 16 ga teng. Ushbu manfiy butun sonni mashina xotirasida ifodalang.
N = -5879 butun manfiy son berilgan. Mashina razryadi k = 14 ga teng. Ushbu manfiy butun sonni mashina xotirasida ifodalang.
N = -7895 butun manfiy son berilgan. Mashina razryadi k = 18 ga teng. Ushbu manfiy butun sonni mashina xotirasida ifodalang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 101111111001 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 10111111100101 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 101111110111001 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 10110011111101 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 100011111111011 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 101111111001 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 10111111100101 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 101111110111001 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 10110011111101 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 100011111111011 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Bu namunalarda butun sonlarni ikkilik sanoq sistemasiga o‘tkazish va berilgan razryadda ifodalash o‘rganiladi. Manfiy sonlar qo‘shimcha kod (two’s complement) usulida ifodalanadi.
1-NAMUNAVIY MASALA
N = −858 butun manfiy son berilgan. Mashina razryadi k = 12 ga teng. Ushbu manfiy butun sonni mashina xotirasida ifodalang.
Avval sonning modulini, ya’ni 858 ni ikkilik sanoq sistemasiga o‘tkazamiz. Buning uchun sonni 2 ga ketma-ket bo‘lib, qoldiqlarni oxiridan boshiga qarab yozamiz. Natija 10 bitni egallaydi.
858₁₀ = 1101011010₂Mashina razryadi 12 bit bo‘lgani uchun boshiga 2 ta nol qo‘shamiz.
001101011010Manfiy sonning qo‘shimcha kodini olish uchun barcha bitlarni teskarisiga almashtiramiz: 0 o‘rniga 1, 1 o‘rniga 0 yozamiz.
001101011010 → 110010100101Hosil bo‘lgan songa ikkilik sanoq sistemasida 1 qo‘shamiz. Shu bilan −858 ning 12 bitli qo‘shimcha kodi hosil bo‘ladi.
110010100101₂ + 1₂ = 110010100110₂−858₁₀ = 110010100110₂ (12 bitli qo‘shimcha kod)2-NAMUNAVIY MASALA
N = 5656 butun musbat son berilgan. Mashina razryadi k = 15 ga teng. Ushbu manfiy emas butun sonni mashina xotirasida ifodalang.
5656 ni 2 ga ketma-ket bo‘lamiz. Har bir bo‘lishdagi qoldiqni oxiridan boshiga qarab o‘qib, sonning ikkilik yozuvini olamiz. Bu yozuv 13 bitdan iborat.
5656₁₀ = 1011000011000₂15 bitni to‘ldirish uchun boshiga 2 ta nol qo‘shamiz. Boshiga nol qo‘shish sonning qiymatini o‘zgartirmaydi.
1011000011000 → 001011000011000Son musbat bo‘lgani uchun bitlarni teskarilash yoki 1 qo‘shish kerak emas. To‘ldirilgan ikkilik yozuv sonning xotiradagi ko‘rinishi bo‘ladi.
0010110000110005656₁₀ = 001011000011000₂ (15 bit)3-NAMUNAVIY MASALA
Mashina xotirasida ifodalangan manfiy butun son (ikkilik) N = 1000111111111011 berilgan. Ushbu sonning 10 lik sanoq sistemasida qanday son ekanligini aniqlang.
Berilgan yozuv 16 bitdan iborat. Uni 16 bitli qo‘shimcha kod deb olamiz. Bu usulda eng chapdagi bit 1 bo‘lsa, son manfiy bo‘ladi.
N = 1000111111111011₂Sonning modulini topish uchun barcha bitlarni teskarisiga almashtiramiz.
1000111111111011 → 0111000000000100Hosil bo‘lgan ikkilik songa 1 qo‘shamiz.
0111000000000100₂ + 1₂ = 0111000000000101₂Natijani o‘nlik sanoq sistemasiga o‘tkazamiz. Buning uchun 1 turgan razryadlarning qiymatlarini qo‘shamiz.
0111000000000101₂
= 2¹⁴ + 2¹³ + 2¹² + 2² + 2⁰
= 16384 + 8192 + 4096 + 4 + 1
= 28677₁₀Dastlabki son manfiy bo‘lgani uchun topilgan modul oldiga minus ishorasini qo‘yamiz.
N = −286771000111111111011₂ = −28677₁₀ (16 bitli qo‘shimcha kod)