উত্তর:
ঠিক যেমন অপারেটর &এবং &&অপারেটর, ডাবল অপারেটর একটি "শর্ট সার্কিট" অপারেটর।
উদাহরণ স্বরূপ:
if(condition1 || condition2 || condition3)
শর্ত 1 সত্য হলে শর্ত 2 এবং 3 পরীক্ষা করা হবে না।
if(condition1 | condition2 | condition3)
এটি 1 এবং ইতিমধ্যে সত্য হলেও শর্তাবলী 2 এবং 3 পরীক্ষা করবে will আপনার শর্তগুলি যেহেতু বেশ ব্যয়বহুল ফাংশন হতে পারে তাই আপনি এগুলি ব্যবহার করে একটি ভাল পারফরম্যান্স উত্সাহ পেতে পারেন।
এখানে একটি বড় ক্যাভিয়েট, নালরফারেন্স বা অনুরূপ সমস্যা রয়েছে। উদাহরণ স্বরূপ:
if(class != null && class.someVar < 20)
ক্লাসটি যদি নাল হয় তবে if-বিবৃতিটি class != nullমিথ্যা হয়ে যাওয়ার পরে থামবে । যদি আপনি কেবল & ব্যবহার করেন তবে এটি চেক করার চেষ্টা করবে class.someVarএবং আপনি একটি দুর্দান্ত পান NullReferenceException। অর-অপারেটরের সাথে এটি কোনও জাল খুব বেশি নাও হতে পারে কারণ আপনি কোনও খারাপ কিছু ট্রিগার করার সম্ভাবনা নেই, তবে এটি মনে রাখা দরকার।
যদিও কোনও একক &বা |অপারেটর ব্যবহার করে না, যদি না আপনি ডিজাইন না করেন যেখানে প্রতিটি শর্ত কার্যকর করার মতো একটি ফাংশন রয়েছে। ডিজাইনের গন্ধ মতো মনে হয় তবে কখনও কখনও (খুব কমই) এটি স্টাফ করার একটি পরিষ্কার উপায়। &অপারেটর "এই 3 ফাংশন চালানোর জন্য, এবং যদি তাদের মধ্যে একজন মিথ্যা ফেরৎ অন্য ব্লক চালানো" না, যখন |"শুধুমাত্র অন্য ব্লক চালানো কেউ রিটার্ন মিথ্যা যদি" না - উপযোগী হতে পারে, কিন্তু বললেন, প্রায়ই এটা একটি নকশা এর গন্ধ।
সেখানে একটি দ্বিতীয় ব্যবহার |এবং &: অপারেটর যদিও Bitwise অপারেশনস ।
&এবং |শর্তসাপেক্ষ অপারেটর হিসাবে শিক্ষা দেওয়া একটি হ্যাক, এবং তাদের যদি কখনও সি / সি ++ ব্যবহারের প্রয়োজন হয় তবে তাদের সমস্যায় পড়তে হবে: মিথ্যা 1 && 2হলেও সত্য 1 & 2।
&প্রায়শই যা বোঝায় তার চেয়ে আলাদা অর্থ বোঝাতে ব্যবহার করছেন : বিটওয়াইস-ও) ।
|| লজিকাল ওআর অপারেটর। দেখে মনে হচ্ছে আপনি এটি মূলত জানেন। এটি শর্তাধীন বিবৃতিতে যেমন যেমন, কখন, ইত্যাদিতে ব্যবহৃত হয় used
condition1 || condition2
যদি কন্ডিশন 1 বা শর্ত 2 সত্য হয় তবে মূল্যায়ণগুলি সত্য হয়।
| বিটওয়াইস বা অপারেটর। এটি দুটি সংখ্যায় পরিচালনা করতে ব্যবহৃত হয়। আপনি প্রতিটি সংখ্যার প্রতিটি বিট স্বতন্ত্রভাবে দেখুন এবং, যদি বিটগুলির মধ্যে একটিও সংখ্যার কমপক্ষে একটিতে 1 হয়, তবে ফলাফল বিটটি 1 টিও হবে। এখানে কিছু উদাহরণ আছে:
A = 01010101
B = 10101010
A | B = 11111111
A = 00000001
B = 00010000
A | B = 00010001
A = 10001011
B = 00101100
A | B = 10101111
আশা করি তা বোধগম্য হয়।
সুতরাং শেষ দুটি প্রশ্নের উত্তর দেওয়ার জন্য, আমি এটি বলব না যে "দুটি অপারেটরের মধ্যে পার্থক্যটি জানুন" ছাড়াও কোনও গুপ্তচর রয়েছে। তারা বিনিময়যোগ্য নয় কারণ তারা দুটি সম্পূর্ণ ভিন্ন জিনিস করে।
ভাল প্রশ্ন. এই দুটি অপারেটর পিএইচপি এবং সি # তে একই কাজ করে।
|কিছুটা দিকের OR। এটি তাদের বিট দ্বারা দুটি মান তুলনা করবে। যেমন 1101 | 0010 = 1111. বিট বিকল্পগুলি ব্যবহার করার সময় এটি অত্যন্ত কার্যকর। উদাহরণস্বরূপ পঠন = 01 (0X01) লিখুন = 10 (0X02) পঠন-লিখন = 11 (0X03)। একটি দরকারী উদাহরণ ফাইল খোলার হবে। একটি সাধারণ উদাহরণ হবে:
File.Open(FileAccess.Read | FileAccess.Write); //Gives read/write access to the file
||একটি যৌক্তিক OR। এইভাবেই বেশিরভাগ লোকেরা ওআর সম্পর্কে চিন্তা করে এবং তাদের সত্যের ভিত্তিতে দুটি মানকে তুলনা করে। যেমন আমি দোকানে যাচ্ছি বা আমি মলে যাব। কোডে এটি প্রায়শই ব্যবহৃত হয়। উদাহরণ স্বরূপ:
if(Name == "Admin" || Name == "Developer") { //allow access } //checks if name equals Admin OR Name equals Developer
পিএইচপি রিসোর্স: http://us3.php.net/language.operators.bitwise
সি # রিসোর্স: http://msdn.microsoft.com/en-us/library/kxszd0kx(VS.71).aspx
http://msdn.microsoft.com/en-us/library/6373h346(VS.71).aspx
|তে একটি এফডব্লিউআইডাব্লু লজিকাল বা যখন বুলিয়ানগুলিতে প্রয়োগ হয় । আপনার লিঙ্কযুক্ত রেফারেন্স হিসাবে। অনুশীলনে, শেষ ফলাফলটি হ'ল বিটওয়াস অপারেটর হিসাবে একই রকম, কারণ এর বিটওয়াইস মানগুলি trueএবং falseএমন যে বিটওয়াইস বা তাদের মানগুলির মধ্যে একটি লজিকাল বা ঠিক যেমন একই ফলাফল ফলাফল করে। তা (int)(bool1 | bool2)== ((int)bool1) | ((int)bool2)।
জাভাতে সাধারণ উদাহরণ
public class Driver {
static int x;
static int y;
public static void main(String[] args)
throws Exception {
System.out.println("using double pipe");
if(setX() || setY())
{System.out.println("x = "+x);
System.out.println("y = "+y);
}
System.out.println("using single pipe");
if(setX() | setY())
{System.out.println("x = "+x);
System.out.println("y = "+y);
}
}
static boolean setX(){
x=5;
return true;
}
static boolean setY(){
y=5;
return true;
}
}
আউটপুট:
using double pipe
x = 5
y = 0
using single pipe
x = 5
y = 5
এবং - (শর্ত ১ এবং শর্ত ২): প্রথমটি মিথ্যা হলেও দুটি ক্ষেত্রেই পরীক্ষা করে
&& - (শর্ত 1 && শর্ত 2): কেসটি মিথ্যা হলে দ্বিতীয় কেসটি পরীক্ষা করতে বিরক্ত করবেন না
&& - অপারেটর আপনার কোডটি দ্রুত, পেশাদারভাবে চালিত করবে এবং খুব কমই ব্যবহৃত হয়
| - (শর্ত ১ | শর্ত ২): কেস 1 সত্য হলেও উভয় কেস চেক করে
|| - (শর্ত ১ || শর্ত ২): প্রথমটি যদি সত্য হয় তবে দ্বিতীয় কেসটি পরীক্ষা করতে বিরক্ত করবেন না
|| - অপারেটর আপনার কোডটি দ্রুত, পেশাদারভাবে চালিত করবে | খুব কমই ব্যবহৃত হয়
rarely used? সব আপনি কী চান বা করা দরকার তার উপর নির্ভর করে।
একক পাইপ, |, বিটওয়াইস অপারেটরগুলির মধ্যে একটি।
উইকিপিডিয়া থেকে:
সি প্রোগ্রামিং ভাষার পরিবারে, বিটওয়াইস বা অপারেটর "|" (নল)। আবার, এই অপারেটরটিকে অবশ্যই তার বুলিয়ান "যৌক্তিক" বা "প্রতিপক্ষের সাথে বিভ্রান্ত করা উচিত নয়, এটি তার অপারেশনগুলিকে বুলিয়ান মান হিসাবে গণ্য করে এবং" || "লেখা হয় (দুটি পাইপ)
তাদের গাণিতিক সংজ্ঞা অনুসারে, ও এবং এবং বাইনারি অপারেটর; তারা এলএইচএস এবং আরএইচএসের শর্তগুলি নির্বিশেষে যাচাই করে | এবং &.
|| এবং && অ্যান্ড ও অপারেটরগুলির বৈশিষ্ট্যগুলি এলএইচএস শর্ত পূরণ না হলে তাদের বন্ধ করে তাদের পরিবর্তন করে।
| | অপারেটর তার দুটি অপারেশনগুলির থেকে কিছুটা বা কিছুটা পারফরম্যান্স সম্পাদন করে (এর অর্থ মিথ্যা প্রত্যাবর্তনের জন্য উভয় পক্ষকে অবশ্যই ভুয়া মূল্যায়ন করতে হবে) || অপারেটর প্রয়োজন হলে কেবল দ্বিতীয় অপারেটরকেই মূল্যায়ন করবে।
http://msdn.microsoft.com/en-us/library/kxszd0kx(VS.71).aspx
http://msdn.microsoft.com/en-us/library/6373h346(VS.71).aspx
সিজ পাইপ "|" এটি "বিটওয়াইজ" বা এটি তখনই ব্যবহার করা উচিত যখন আপনি জানেন যে আপনি কী করছেন। ডাবল পাইপ "||" এটি একটি যৌক্তিক বা, এবং "x == 0 || x == 1" এর মতো যৌক্তিক বিবৃতিতে ব্যবহার করা যেতে পারে।
এখানে বিটওয়াইস বা কী করে তার একটি উদাহরণ: যদি a = 0101 এবং b = 0011 হয় তবে a | b = 0111। যদি আপনি এমন কোনও যুক্তি ব্যবস্থা নিয়ে কাজ করছেন যা কোনও শূন্যকে সত্য হিসাবে বিবেচনা করে, তবে বিটওয়াইস বা যৌক্তিক বা একইভাবে কাজ করবে, তবে এটি প্রতিদ্বন্দ্বী (বিটওয়াইজ এবং, "&") হবে না। এছাড়াও বিটওয়াইস বা শর্ট সার্কিট মূল্যায়ন করে না।
boolশর্ট সার্কিট না করেও প্রকারে ব্যবহার করা যেতে পারে ।