স্বাভাবিকভাবে গণনা শূন্য থেকে শুরু হয়
ঝুড়িতে আপেল গণনা করার জন্য এখানে অ্যালগরিদম রয়েছে:
count := 0
for each apple in basket
count := count + 1
উপরের মৃত্যুদন্ড কার্যকর করার পরে, count
আপেল সংখ্যা ধরে। এটি শূন্য হতে পারে, কারণ ঝুড়িগুলি খালি থাকতে পারে।
আপনি যদি পুরো এক মাসের জন্য আপনার ক্রেডিট কার্ড ব্যবহার না করেন তবে আপনি কি 1 ডলারের বিল পান? নাকি 1 সেন্ট?
আপনি যখন নিজের গাড়ির ওডোমিটারে ট্রিপ মিটারটি পুনরায় সেট করেন, এটি কি 0001 বা 0000 এ যায়?
অ্যারে একই ডেটার একাধিক মতামত সরবরাহ করতে পারে
32 বিট কাঠামোর একটি অ্যারে বিবেচনা করুন d
, যা প্রতিটি 16 বিট শব্দের দ্বারা তৈরি w
। প্রতিটি শব্দ দুটি 8 বিট বাইট নিয়ে গঠিত b
। শূন্য সূচকের নিচে, ওভারলেটি খুব সুবিধাজনক দেখাচ্ছে:
d: | 0 | 1 |
w: | 0 | 1 | 2 | 3 |
b: |0|1|2|3|4|5|6|7|
32 বিট অবজেক্টটি d[1]
শব্দের ঠিকানায় w[2]
যা সূচককে 2 দিয়ে সহজেই গুণতে পারে যা 32 এবং 16 বিট অবজেক্টের আকারের অনুপাত। তদ্ব্যতীত, বাইট সম্বোধনে, এটি b[4]
।
এটি পরিমাপের প্রতিটি ইউনিটে শূন্য হওয়ায় এটি কাজ করে: বাইট, শব্দ, দ্বিগুণ শব্দ এবং আরও।
উপরের চিত্রটি দেখুন: এটি অনেকটা কোনও শাসকের মতো দেখাচ্ছে, যেখানে ইউনিট রূপান্তরগুলি স্বজ্ঞাত।
একটি ভিত্তিক সূচক সহ, এটি বিরতি:
d: | 1 | 2 |
w: | 1 | 2 | 3 | 4 |
b: |1|2|3|4|5|6|7|8|
এখন আমরা d
সূচকটি পেতে সূচকটি কেবল 2 দিয়ে w
বা 4 দ্বারা সূচক পেতে গুণতে পারি না b
। ইউনিটের মধ্যে রূপান্তর আনাড়ি হয়ে যায়। উদাহরণ হিসেবে বলা যায় থেকে যেতে জন্য d[2]
করতে b[4]
, আমরা নিরূপণ করতে হবে ((2 - 1) * 4) + 1 = 5
।
আমাদের d
ইউনিটগুলিতে সেই জটিল 1 পক্ষপাতাকে বিয়োগ করতে হবে , তারপরে প্রাকৃতিক শূন্য-ভিত্তিক স্থানাঙ্ক ব্যবস্থায় স্কেলিং করতে হবে এবং তারপরে pesky 1 যুক্ত করতে হবে b
। লক্ষ্য করুন যে এটি একই 1 নয়! আমরা একটি দ্বিগুণ শব্দের প্রস্থ বিয়োগ করি, তবে তারপরে একটি বাইট প্রস্থে যুক্ত করি ।
ডেটার বিভিন্ন দর্শনগুলির মধ্যে রূপান্তর করা সেলসিয়াস-ফারেনহাইট রূপান্তরগুলির মতো হয়ে যায়।
যারা বলে যে এক-ভিত্তিক অ্যারেগুলি বাস্তবায়ন স্তরে মোকাবিলা করা সহজ, কারণ কেবলমাত্র 1 এর সাধারণ বিয়োগফল নিজেকে বোকা বানাচ্ছে। এটি শুধুমাত্র সত্য যদি আমরা বিভিন্ন ডেটা ধরণের মধ্যে কোনও স্কেলিং গণনা না করি। এই জাতীয় গণনাগুলি এমন কোনও প্রোগ্রামে ঘটে থাকে যা ডেটাগুলির উপর নমনীয় দৃষ্টিভঙ্গি থাকে (যেমন একটি বহুমাত্রিক অ্যারে এছাড়াও এক-মাত্রিক হিসাবে অ্যাক্সেস করা হয়) বা স্টোরেজটি হেরফের করে: উদাহরণস্বরূপ, একটি মেমরি বরাদ্দকারী, ফাইল সিস্টেম বা ভিডিও ফ্রেম বাফার লাইব্রেরি।
সংখ্যা হ্রাস করা হচ্ছে
যে কোনও বেসে, আমরা যদি বেসের শক্তি যা মানগুলির একটি ব্যাপ্তি প্রয়োগ করতে কয়েকটি সংখ্যার ব্যবহার করতে চাই, আমাদের অবশ্যই শূন্য থেকে শুরু করতে হবে। উদাহরণস্বরূপ, দশ দশকে তিনটি অঙ্ক আমাদের 0 থেকে 999 এর মধ্যে এক হাজার স্বতন্ত্র মান প্রদানের জন্য যথেষ্ট 1
এটি কম্পিউটারে গুরুত্বপূর্ণ, কারণ বাইনারিতে সংখ্যাগুলির সংখ্যা হার্ডওয়্যার অ্যাড্রেস লাইনে অনুবাদ করে। উদাহরণস্বরূপ এর মধ্যে 256 শব্দের সাথে একটি রম চিপ 0 থেকে 255 পর্যন্ত সম্বোধন করা যেতে পারে, যার জন্য 8 টি বিট প্রয়োজন: 00000000 থেকে 11111111। এটি যদি 1 থেকে 256 পর্যন্ত সম্বোধন করা হয়, তবে নয়টি বিট প্রয়োজন। আমাদের অপ্রয়োজনীয়ভাবে সার্কিট বোর্ড বা ইন্টিগ্রেটেড সার্কিটের সাথে আরও একটি ঠিকানার ট্রেস যুক্ত করতে হবে। সুতরাং বাস্তবে যা ঘটবে তা কেবল 0 নামে ডাকা হবেসেই চিপটি অ্যাক্সেস করার জন্য সফ্টওয়্যার এপিআই স্তরে 1 1 শব্দের জন্য একটি অনুরোধ আসলে 8 বিট ঠিকানা বাসে 00000000 লাগবে। অন্যথায়, 1 এর অনুরোধটি 00000001 ঠিকানা হিসাবে প্রত্যাশা হিসাবে অনুবাদ করবে, তবে 256 এর জন্য একটি অনুরোধ 9 বিট ঠিকানার 100000000 এর চেয়ে অন্যথায় অব্যবহৃত 8 বিট ঠিকানা 00000000 এ মানচিত্র করবে these এই ব্যাগ-কামড়ানো ক্লোজেস উভয়ই সত্যই সমাধান কোনও সমস্যার সন্ধান করা এবং হার্ডওয়্যার, সফ্টওয়্যার এবং সমস্ত ব্যবহারকারীর ইন্টারফেস এবং ডকুমেন্টেশনে নিয়মিত 0 থেকে 255 ব্যবহার করে এড়ানো যায়।
এক-ভিত্তিক স্থানচ্যুতি মৌলিকভাবে বোকা
উদাহরণস্বরূপ পশ্চিমা সংগীত তত্ত্বটি বিবেচনা করুন। আমাদের কাছে সাতটি নোট সহ ডায়াটোনিক স্কেল রয়েছে তবে আমরা সেই স্থানটিকে কল করি যা তারা একটি অষ্টককে আচ্ছাদন করে ! অন্তরগুলির বিপরীতকরণ তখন নয়টির বিধি অনুসরণ করে : উদাহরণস্বরূপ তৃতীয়টির বিপরীতটি একটি ষষ্ঠ (নয়টি থেকে তিনটি বিয়োগ) করা হয়। সুতরাং তিনটি পৃথক সংখ্যা এত সাধারণ কোনও কিছুর জন্য খেলছে: সাতটি (একটি স্কেলে নোট), আটটি (অষ্টক) এবং নয়টি (বিপরীত দিকে বিয়োগ)।
যদি সাতটি নোট একটি সেপ্টেভ বা হেপটাভ তৈরি করে এবং অন্তরগুলি শূন্য ভিত্তিক হয়, তবে আমরা সাতটি থেকে বিপরীতে বিয়োগ করব। সাত উপর ভিত্তি করে সবকিছু।
তদুপরি, অন্তরগুলি সহজেই স্ট্যাক করা যায়। বর্তমান সিস্টেমে, আমরা যদি একটি পঞ্চম দ্বারা লাফিয়ে এবং তারপরে আবার চতুর্থ দ্বারা, এবং তারপর তৃতীয় দ্বারা, আমরা কেবল এগুলি যুক্ত করতে পারি না। ফলাফল বিরতি দুটি কম। এটি দ্বিগুণ নয়, আসলে দশম! প্রতিটি পর্যায়ে, আমাদের একটিকে বিয়োগ করতে হবে। পঞ্চম এবং তারপরে চতুর্থ দ্বারা উপরে যাওয়া নবম নয়, তবে কেবল একটি অষ্টক।
একটি বুদ্ধিমানভাবে নকশা করা সংগীত সিস্টেমে, ফলাফলের লাফগুলি নির্ধারণের জন্য আমরা কেবল অন্তরগুলি যুক্ত করতে পারি। নোটগুলির ক্রম যা একই নোটে শুরু হয় এবং শেষ হয় তারপরে একটি সার্কিটের চারপাশে ভোল্টেজ আইনের অনুরূপ একটি সম্পত্তি থাকবে: সমস্ত অন্তর শূন্যের সাথে যুক্ত হবে।
সংগীত তত্ত্ব এবং লেখা খারাপভাবে পুরানো। মোমবাতির আলোতে কুইল কলম দিয়ে রচনা করার দিনগুলি বেশিরভাগের সাথে পরিবর্তিত হয়নি।
এক-ভিত্তিক সিস্টেমগুলি একই লোককে বিভ্রান্ত করে যারা শূন্য-ভিত্তিক অ্যারে পরিচালনা করতে পারে না
২০০০ সাল যখন ঘুরে দেখা গেল, কেন নতুন সহস্রাব্দ শুরু হয়নি, তাই অনেকে বিভ্রান্ত হয়ে পড়েছিলেন। যারা ইঙ্গিত করছেন যে এটি 2001 সাল না হওয়া পর্যন্ত শুরু হবে না তাকে দলীয় poopers এবং dweebs হিসাবে গণ্য করা হয়েছিল। সর্বোপরি, আপনি যখন 20 বছর বয়সে পরিণত হন, ঠিক? আপনি যখন 21 বছর বয়সী হন না, যদি আপনি ভেবেছিলেন যে সহস্রাব্দ 1 জানুয়ারী, 2000 এ শুরু হয়েছিল, তবে আপনার কোনও প্রোগ্রামিং ভাষায় শূন্য ভিত্তিক অ্যারে সম্পর্কে অভিযোগ করার অধিকার নেই। আপনি ঠিক কীভাবে পছন্দ করেন সেগুলি তারা কাজ করে। (তবে, হ্যাঁ, এক-ভিত্তিক স্থানচ্যুতি এবং অ্যারেগুলির সমর্থকরা দ্বিজ এবং পার্টি-পোপাররা Cent
ক্যালেন্ডারগুলি বোবা, তবে দিনের কমপক্ষে সময় শূন্য ভিত্তিক
আপনার ঘড়ির প্রতিটি নতুন মিনিট: 00 সেকেন্ডের সাথে শুরু হয়। প্রতিটি নতুন ঘন্টা শুরু হয় 00:00 মিনিট এবং সেকেন্ডের সাথে। এবং, কমপক্ষে ২৪ ঘন্টা ঘড়িতে, দিনটি প্রায় মধ্যরাতের ধর্মঘটের সময় ঘুরে বেড়ায় এবং 11:59:59 এ 00:00:00 পর্যন্ত বৃদ্ধি পায়।
সুতরাং আপনি যদি মধ্যরাত থেকে 13:53:04 এর মতো সময়ের জন্য সেকেন্ড গণনা করতে চান তবে আপনাকে কেবল মূল্যায়ন করতে হবে 13 * 3600 + 53 * 60 + 4
। কোনও ইনসিপিড 1
সংযোজন বা বিয়োগফল নেই।
এমআইডিআই সম্পর্কে কান্ড বন্ধ
ঠিক আছে, সংগীতজ্ঞদের সাথে এটি কী, এমনকি অনুমিত প্রযুক্তিগতও রয়েছে?
এখন MIDI! এটি বার্তাগুলির প্রকৃত তারের উপস্থাপনায় প্রোগ্রাম এবং চ্যানেলগুলির জন্য শূন্য-ভিত্তিক নম্বর ব্যবহার করে তবে গিয়ার এটিকে 1 ভিত্তিক হিসাবে প্রদর্শন করে! উদাহরণস্বরূপ 0 থেকে 127 প্রোগ্রামগুলিকে বেশিরভাগ গিয়ারে 1 থেকে 128 বলা হয় তবে কিছু তাদের 0 থেকে 127 বলে বা এমনকি ব্যবহারকারীকে একটি পছন্দ দেয়।
71১ থেকে ৮০ পর্যন্ত প্রোগ্রামগুলি দশজনের একটি "ব্যাংক" হিসাবে বিবেচিত। উদাহরণস্বরূপ, এটি আমার মিডি পেডেলে ঠিক তাই বলে। পাদদেশগুলির সুইচগুলি 1 থেকে 10 পর্যন্ত লেবেলযুক্ত এবং যদি আমি সপ্তম ব্যাঙ্কে থাকি তবে তারা 71১ থেকে ৮০ এর মধ্যে প্রোগ্রামগুলি বেছে নেয় However তবে, কিছু ডিভাইস বা কম্পিউটার সফ্টওয়্যার 1-128 প্রোগ্রামের সংখ্যা 0 থেকে 127 হিসাবে প্রদর্শন করে বা এমনকি ব্যবহারকারীকে দেয় পছন্দ! আরও খারাপটি কী: এক-ভিত্তিক সিস্টেমগুলি, বা একই সাথে একই সাথে শূন্য উভয় ব্যবহার করে তৈরি করা বিশৃঙ্খলা?
এমআইডিআই চ্যানেল নম্বরগুলিকে 1 থেকে 16 বলা হয় তবে 0 থেকে 15 বাইনারি দ্বারা প্রতিনিধিত্ব করা হয়। যেমন এক-ভিত্তিক উপস্থাপনাটির বাইরে থাকা, কিছু গিয়ার একটি চ্যানেল নম্বর কনফিগার করার জন্য একটি ডিসপসচিচ ব্যবহার করে এবং প্রায়শই থিস স্যুইচগুলি কেবল শূন্য ভিত্তিক বাইনারি কোড ব্যবহার করে। সুতরাং আপনি যদি চ্যানেল 3 চান, আপনার অবশ্যই এটি 0010 (বাইনারি 2) এ টগল করতে হবে।