در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو

با سلام به همه دوستان و همراهان Itpro.

عملگرهای بیتی

جاوا دارای چندین عملگر بیتی است که این عملگرها بر روی انواع داده int, long, short, char, byte قابل اعمال است. عملگرهای بیتی بر روی تک تک بیتهای عملوند ها کار می کنند. برای مثال در متغیر a مقدار 60 را قرار می دهیم و در متغیر b عدد 13 را قرار می دهیم. حال شکل باینری این دو متغیر به شکل زیر خواهد بود

a=00111100
b=00001101

در ادامه به بررسی این عملگرها می پردازیم.

  • عملگر and بیتی (&) این عملگر بیت های دو عملوند را دو به دو با هم and می کند و مقدار را مشخص می نماید برای مثال نتیجه and بیتی a&b برابر 12 خواهد بود که مقدار باینری آن 00001100 می باشد.
  • عملگر or بیتی این عملگر بیت های دو عملوند را دو به دو با هم or می نماید. برای مثال نتیجه عمل a|b برابر مقدار 61 یعنی عدد باینری 00111101 خواهد بود.
  • عملگر xor بیتی (^) این عملگر بیت های دو عدد را با هم xor می نماید. یعنی اگر یکی از مقادیر مقدار یک و دیگری مقدار 0 داشته باشد جواب 1 و اگر هردو یکسان باشند جواب 0 می دهد. برای مثال نتیجه عمل a^b برابر 49 که معادل باینری آن 00110001 می باشد است.
  • عملگر مکمل بیتی(~) این عملگر یک عملگر تک عملوندی است که بیت های عملوند خود را برعکس می کند یعنی اگر بیت مورد نظر 1 باشد آن را 0 و اگر 0 باشد آن را 1 می کند. برای مثال ~a برابر -61 با عدد باینری 11000011 است.
  • عملوند شیفت به چپ (>>) این عملوند مقدار عدد را به تعداد گفته شده به سمت چپ شیفت بیتی می دهد. برای مثال اگر بخواهیم a را دو بار به سمت چپ شیفت بدهیم باید به این شکل بنویسیم.a<<2 در این صورت نتیجه برابر 240 خواهد بود زیرا که معادل باینری آن 11110000 می باشد.
  • عملگر شیفت به راست(>>) این عملگر مقدار عدد را به تعداد گفته شده به راست شیفت می دهد. برای مثال نتیجه عمل a>>2 برابر مقدار 15 با عدد باینری 1111 خواهد شد.
  • عملگر شیفت به راست با ورود 0 : عملگرهای شیفت به راست و شیفت به چپ که گفته شده مقدار عدد خارج شده را به عنوان مقدار ورودی شیفت وارد می کردند ولی عملگر شیفت به راست با ورودی 0 عدد را به سمت راست شیفت می دهد و مقدار صفر را از سمت چپ به آن وارد می نماید. برای مثال نتیجه عمل a>>>2 عدد 15 می باشد.

برای درک بهتر عملگرهای بیتی به کد زیر دقت کنید.

public class Test {

  public static void main(String args[]) {
     int a = 60;	/* 60 = 0011 1100 */  
     int b = 13;	/* 13 = 0000 1101 */
     int c = 0;

     c = a & b;       /* 12 = 0000 1100 */ 
     System.out.println("a & b = " + c );

     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );

     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );

     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );

     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );

     c = a >> 2;     /* 215 = 1111 */
     System.out.println("a >> 2  = " + c );

     c = a >>> 2;     /* 215 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  }
} 

خروجی برنامه بالا به شکل زیر خواهد بود

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2=15
a >>> 2=15

عملگرهای منطقی

عملگرهای منطقی بر روی داده های از نوع boolean و یا عباراتی که نتیجه boolean یعنی مقدار درست یا غلط دارند عمل می کنند. در ادامه به شرح این عملوند ها می پردازیم. برای مثال فرض کنید که دو متغیر a, b داریم که مقدار a برابر true و مقدار b برابر false می باشد.

  1. عملگر and منطقی (&&) این عملگر در صورتی جواب true برمی گرداند که هردو عملوند چپ و راست آن true یا غیرصفر باشند. برای مثال نتیجه عمل a&&b مقدار false است.
  2. عملگر or منطقی این عملگر در صورتی نتیجه true می دهد که یکی از عملوند ها true یا غیر صفر باشد. برای مثال نتیجه عمل a||b مقدار true است.
  3. عملگر نقیض منطقی(!) این عملگر یک عملگر تک عملوندی است. اگر عملوند این عملگر درست باشد مقدار False و در غیر این صورت مقدار true برمی گرداند. برای مثال حاصل عبارت !(a&&b) مقدار true می باشد.

برای مثال به کد زیر دقت نمایید.

public class Test {

  public static void main(String args[]) {
     boolean a = true;	
     boolean b = false;	

     System.out.println("a && b = " + (a&&b));

     System.out.println("a || b = " + (a||b) );

     System.out.println("!(a && b) = " + !(a && b));
  }
} 

خروجی کد به شکل زیر است

a && b = false
a || b = true
!(a && b) = true

عملگرهای انتسابی

عملگرهای انتسابی که توسط جاوا پشتیبانی می شوند عبارتند از:

  • عملگر انتساب(=) این عملگر مقدار سمت راست عملگر را در عملوند سمت چپ می ریزد. برای مثال C=A+B مقدار C برابر با جمع A و B خواهد بود.
  • عملگر جمع و انتساب(+=) این عملگر به این شکل عمل می کند که ابتدا عملوند سمت راست را با عملوند سمت چپ جمع نموده و در عملوند سمت چپ ذخیره می نماید. برای مثال C+=A معادل C=C+A می باشد.
  • عملگر تفریق و انتساب(-=) مانند همان عملگر جمع و انتساب عمل می کند با این تفاوت که عملوند سمت راست را از عملوند سمت چپ کم کرده و ذخیره می کند. برای مثال عمل C-=A معادل C=C-A می باشد.
  • عملگر ضرب و انتساب(*=) و عملگر (/=) و عملگر (%=) معادل اعمال قبلی هستند.
  • عملگر های >>= و <<= و &= و ^= و |= نیز اعمال بیتی گفته شده را به انضمام انتساب انجام می دهند.

برای مثال و درک بهتر عملگرهای انتساب به مثال زیر دقت نمایید.

public class Test {

  public static void main(String args[]) {
     int a = 10;	
     int b = 20;
     int c = 0;

     c = a + b;
     System.out.println("c = a + b = " + c );

     c += a ;
     System.out.println("c += a  = " + c );

     c -= a ;
     System.out.println("c -= a = " + c );

     c *= a ;
     System.out.println("c *= a = " + c );

     a = 10;
     c = 15;
     c /= a ;
     System.out.println("c /= a = " + c );

     a = 10;
     c = 15;
     c %= a ;
     System.out.println("c %= a  = " + c );

     c <<= 2 ;
     System.out.println("c <<= 2 = " + c );

     c >>= 2 ;
     System.out.println("c >>= 2 = " + c );

     c >>= 2 ;
     System.out.println("c >>= a = " + c );

     c &= a ;
     System.out.println("c &= 2  = " + c );
  
     c ^= a ;
     System.out.println("c ^= a   = " + c );

     c |= a ;
     System.out.println("c |= a   = " + c );
  }
} 

خروجی کد بالا به شکل زیر است:

c = a + b = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a  = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a  = 0
c ^= a   = 10
c |= a   = 10

عملگرهای متفرقه

عملگرهای دیگری نیز در جاوا وجود دارند که در ادامه آمده اند. این عملگرها در گروه های بالا قرار می گیرند.

  • عملگر شرطی (? :). این عملگر که به عنوان عملگر سه گانه نیز شناخته می شود برای ارزیابی یک مقدار boolean به کار می رود. این عملگر به این منظور به کار می رود که مشخص کند که کدام مقدار در عملوند سمت چپ انتساب قرار گیرد. اگر شرط عملگر درست باشد مقداری که پشت علامت سوال ؟ قرار می گیرد انتخاب می شود و در غیر این صورت مقدار موجود بعد از علامت دو نقطه : انتخاب خواهد شد. برای مثال به کد زیر دقت کنید.
  • public class Test {
    
       public static void main(String args[]){
          int a, b;
          a = 10;
          b = (a == 1) ? 20: 30;
          System.out.println( "Value of b is : " +  b );
    
          b = (a == 10) ? 20: 30;
          System.out.println( "Value of b is : " + b );
       }
    }
    
    

خروجی این کد به شکل زیر خواهد بود

Value of b is : 30
Value of b is : 20

این عملگر یک عملگر تصمیم گیری است و به جای if else های راحت مورد استفاده قرار می گیرد.

  • عملگر instanceof این عملگر برای اشیا به کار می رود. این عملگر چک می کند که آیا شی مورد نظر یک نمونه از کلاس یا اینترفیس مشخص شده است یا خیر. اگر شی گفته شده از نوع کلاس یا اینترفیس مورد نظر باشد نتیجه true و در غیر این صورت نتیجه false خواهد بود. برای مثال به کد زیر دقت کنید.
  • public class Test {
    
       public static void main(String args[]){
          String name = "James";
          // following will return true since name is type of String
          boolean result = name instanceof String;  
          System.out.println( result );
       }
    }
    
    

نتیجه کد بالا به شرح زیر خواهد بود

true

به مثال زیر نیز دقت کنید.

class Vehicle {}

public class Car extends Vehicle {
   public static void main(String args[]){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result );
   }
}

خروجی کد بالا هم true می باشد.

تقدم عملگرها

نکته ای که باقی می ماند این است که بدانیم کدام یک از متغیر ها نسبت به قبلی دارای تقدم بیشتری در اجرا می باشد. تقدم عملگرها برای ارزیابی متغیرها بسیار مهم است. تقدم برخی متغیرها نسبت به برخی دیگر بالاتر است. برای مثال عملگر ضرب دارای تقدم بیشتری نسبت به جمع و تفریق است. برای مثال x=7+3*2 ابتدا عمل ضرب انجام می شوند و سپس عمل جمع انجام می شود که نتیجه عمل عدد 13 خواهد بود. در شکل زیر تقدم عملگرها از بالا به پایین نشان داده شده است.

آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو

Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#آموزش_برنامه_نویسی_جاوا #عملگرهای_بیتی_در_جاوا #آموزش_جاوا #انواع_عملگرها_در_جاوا #عملگرهای_انتسابی_در_جاوا #عملگرهای_متفرقه_در_جاوا #تقدم_عملگرها_در_جاوا #دوره_آموزشی_جاوا #زبان_برنامه_نویسی_جاوا #یادگیری_زبان_برنامه_نویسی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
1 نظر
sdyussuf

این صفحه تبدیل به پی دی اف نمیشه :(((((

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....