টি এল; ডিআর
সি উত্তরাধিকারসূত্রে !
এবং ~
অন্য ভাষা থেকে অপারেটর। উভয়ই &&
এবং ||
বছর পরে একটি পৃথক ব্যক্তি যোগ করা হয়েছিল।
দীর্ঘ উত্তর
Orতিহাসিকভাবে, সি প্রাথমিক ভাষাগুলির মধ্যে বি বিকশিত হয়েছিল, যা বিসিপিএলের উপর ভিত্তি করে ছিল, যা সিপিএল ভিত্তিক ছিল, যা আলগোলের উপর ভিত্তি করে ছিল।
অ্যালগল , সি ++, জাভা এবং সি # এর মহান-পিতামহ, প্রোগ্রামারদের কাছে স্বজ্ঞাত বোধ করার জন্য সত্য ও মিথ্যা সংজ্ঞায়িত করেছেন: "সত্যিকার মান যা বাইনারি সংখ্যা হিসাবে গণ্য হয় (1 এর সাথে সত্য এবং 0 এর সাথে মিথ্যা), অভ্যন্তরীণ অবিচ্ছেদ্য মান হিসাবে একই "। তবে এর একটি অসুবিধা হ'ল লজিকাল এবং বিটওয়াইজ একই ক্রিয়াকলাপ হতে পারে না: যে কোনও আধুনিক কম্পিউটারে, ~0
1 এর চেয়ে 1- ~1
সমান এবং 0-এর সমান -2 (এমনকি ষাট বছরের পুরানো মেইনফ্রেমে যেখানে ~0
প্রতিনিধিত্ব করা হয় - 0 বা INT_MIN
, ~0 != 1
কখনও তৈরি প্রতিটি সিপিইউতে, এবং সি ভাষার স্ট্যান্ডার্ডটি বহু বছরের জন্য এটির প্রয়োজনীয়তা রয়েছে, যদিও এর বেশিরভাগ কন্যা ভাষা এমনকি সাইন-ও-গৌনত্ব বা কোনওটির পরিপূরককে সমর্থন করার পক্ষেও জোর দেয় না))
আলগল বিভিন্ন রূপ নিয়ে এবং অপারেটরদের বুলিয়ান এবং ইন্টিগ্রাল মোডে আলাদাভাবে ব্যাখ্যা করে এটিকে ঘিরে কাজ করে। এটি হ'ল, বিটওয়াইজ অপারেশনটি পূর্ণসংখ্যার ধরণগুলির মধ্যে একটি ছিল এবং বুলিয়ান ধরণের ক্ষেত্রে একটি যৌক্তিক অপারেশন ছিল।
বিসিপিএল-এর বিটওয়াইজ এবং লজিক্যাল নয় উভয়ের জন্য একটি পৃথক বুলিয়ান প্রকার ছিল, তবে একটি একক not
অপারেটর ছিল । সি এর প্রথম দিকের অগ্রদূত যেভাবে কাজটি করেছিলেন তা ছিল:
সত্যের মূল্যমানটি কিছুটা প্যাটার্ন যা সম্পূর্ণরূপে গঠিত; অসত্যের মূল্য শূন্য।
মনে রাখবেন যে true = ~ false
(আপনি পর্যবেক্ষণ করবেন যে মূল্যবোধের শব্দটি সি-পারিবারিক ভাষায় সম্পূর্ণ আলাদা অর্থ বোঝাতে বিকশিত হয়েছে We আমরা আজ সিটিকে "বস্তুর উপস্থাপনা" বলব)
এই সংজ্ঞাটি যৌক্তিক এবং বিটওয়াইজকে একই মেশিন-ভাষা নির্দেশ ব্যবহার না করার অনুমতি দেয়। সি যদি সেই পথে চলে যায় তবে শিরোনামটি বিশ্ব জুড়ে বলত #define TRUE -1
।
তবে বি প্রোগ্রামিংয়ের ভাষাটি দুর্বল টাইপযুক্ত ছিল এবং এতে কোনও বুলিয়ান বা এমনকি ভাসমান-বিন্দুর প্রকার ছিল না। int
এর উত্তরসূরির সবকিছুতেই সমান ছিল সি। যখন কোনও প্রোগ্রামটি সত্য বা মিথ্যা ছাড়া অন্য কোনও মানকে যৌক্তিক মান হিসাবে ব্যবহার করে তখন কী ঘটেছিল তা সংজ্ঞায়িত করার পক্ষে ভাষার পক্ষে এটি একটি ভাল ধারণা তৈরি হয়েছিল। এটি প্রথমে একটি সত্যবাদী অভিব্যক্তিটিকে "শূন্যের সমান নয়" হিসাবে সংজ্ঞায়িত করেছিল। এটি যে মিনিটকম্পিউটারে চলেছিল তাতে দক্ষ ছিল, যার সিপিইউ শূন্য পতাকা ছিল।
সেই সময় সেখানে একটি বিকল্প ছিল: একই সিপিইউতেও নেতিবাচক পতাকা ছিল, এবং বিসিপিএলের সত্য মান -1 ছিল, সুতরাং বি এর পরিবর্তে সমস্ত নেতিবাচক সংখ্যাকে সত্যবাদী এবং সমস্ত অ-নেতিবাচক সংখ্যাকে মিথ্যা হিসাবে সংজ্ঞায়িত করতে পারে। (এই পদ্ধতির একটি বাকী অংশ রয়েছে: ইউএনআইএক্সে অনেকগুলি সিস্টেম কল, একই সময়ে একই ব্যক্তিদের দ্বারা বিকাশিত, সমস্ত ত্রুটি কোডগুলি নেতিবাচক পূর্ণসংখ্যা হিসাবে সংজ্ঞায়িত করে its এর সিস্টেম কলগুলির মধ্যে অনেকগুলি ব্যর্থতার বিরুদ্ধে বিভিন্ন ধরণের নেতিবাচক মানকে রিটার্ন দেয়)) সুতরাং কৃতজ্ঞ থাকুন: এটি আরও খারাপ হতে পারে!
তবে বি TRUE
হিসাবে 1
এবং FALSE
হিসাবে সংজ্ঞায়িত করার 0
অর্থ হ'ল পরিচয়টি true = ~ false
আর রাখা হয়নি এবং এটি শক্তিশালী টাইপিং ফেলেছিল যা আলগোলকে বিটওয়াইজ এবং লজিক্যাল এক্সপ্রেশনগুলির মধ্যে বিভক্ত করতে দেয়। এটির জন্য একটি নতুন লজিকাল-নন অপারেটর প্রয়োজন, এবং ডিজাইনাররা বেছে নিয়েছিলেন !
, সম্ভবত কারণ সমান-সমান ইতিমধ্যে ছিল না !=
, যা দেখতে সমান চিহ্নের মাধ্যমে উল্লম্ব বারের মতো সাজানো। তারা একই সম্মেলনটি অনুসরণ করেনি &&
বা ||
কারওরই অস্তিত্ব নেই বলে তারা অনুসরণ করে ।
তাত্ক্ষণিকভাবে, তাদের উচিত: &
বিতে অপারেটরটি নকশা অনুযায়ী ভাঙা। বি এবং সি-তে, 1 & 2 == FALSE
যদিও 1
এবং 2
উভয় সত্যবাদী মূল্যবোধ, এবং বি-তে যৌক্তিক ক্রিয়াকলাপটি প্রকাশ করার কোনও স্বজ্ঞাত উপায় নেই That এটি ছিল একটি ভুল সি যুক্তি দ্বারা আংশিকভাবে সংশোধন করার চেষ্টা করেছিল &&
এবং ||
, কিন্তু সেই সময়টির প্রধান উদ্বেগ ছিল অবশেষে কাজ করার জন্য সংক্ষিপ্ত সার্কিট করুন এবং প্রোগ্রামগুলি আরও দ্রুত চালিত করুন। এর প্রমাণটি হ'ল এটি নেই ^^
: 1 ^ 2
এটি উভয় ক্রিয়াকলাপ সত্যবাদী হলেও সত্যবাদী মূল্য, তবে এটি সংক্ষিপ্ত-প্রদাহ দ্বারা উপকৃত হতে পারে না।