Цомпарисон Цхарт
Основа за поређење | & | && |
---|---|---|
Оператор | То је "битни оператер". | То је "логички оператер". |
Евалуација | Он оцењује и леву и десну страну израза. | Она само процењује леву страну израза. |
Ради на | Ради на "Боолеан дататипе", као и на "битовима". | Ради само на "Боолеан дататипе". |
Користи | Користи се за проверу логичког стања и такође се користи за маскирање одређених битова као што су паритетни битови. | Користи се само за провјеру логичког стања. |
Дефиниција & (Битвисе АНД)
Овај "&" оператор се користи као и, логички (&) оператор и битни оператор. Ради на боолеан и бинарним подацима. Када се & оператор користи као логички & оператор онда то резултира “труе” ако су обе стране израза процене тачне, иначе се враћа “фалсе”. Омогућава компајлеру да процени и страну израза. То јест, чак и ако лева страна израза даје лажно, она процењује десну страну израза.
Дозволите нам да ово схватимо са примером.
инт а = 4, б = 5; систем.оут.принтлн ((== 6) & (б ++ == 6)); систем.оут.принтлн ("б =" + б); // оутпут фалсе б = 5
Овде, при оцењивању леве стране израза (а == 6), добија се лаж, а затим оператер процењује десну страну израза (б ++ == 6) као резултат б вредности.
Када се '&' користи као 'битовски оператер', прво претвара оба операнда у бинарни облик и онда ради на њему помоћу & оператор, бит-би-бит. Након операције, добијени резултат је у бинарном облику, који се затим конвертује у децимални. Било који бит који је 0 у било којем од операнада резултира у 0. Ако су оба бита операнада 1, тада је резултантни бит 1. Битвисе & оператор се управља истом таблицом истине као и логички и оператор.
Погледајмо битну операцију & оператор.
инт а; а = 3 и 4; // 011 & 100 = 000 систем.оут.принтлн ("а =" + а); // оутпут а = 0
Овде, децимална вредност 3 и 4 се иницијално конвертују у њихов бинарни облик, а затим оператор & битвисе извршава & операцију на њима бит-по-бит. Добијени резултат је у бинарном облику, који се затим поново конвертује у децимални облик.
Дефиниција && (кратки спој И)
Овај && оператер ради потпуно као логичан оператор. Ради само на типу боолеан података. То се назива и оператор кратког споја. Пошто само проверава леву страну израза. Ако лева страна израза резултира лажним, онда се не мучи око процене десне стране израза.
Дозвољава нам да разумемо рад оператора && са примером.
инт а = 4, б = 5; систем.оут.принтлн ((а == 6) && (б ++ == 6)); систем.оут.принтлн ("б =" + б); // оутпут фалсе б = 4
Овде је услов (а == 6) лажан, и& оператор не процењује израз (б ++ == 6) као резултат, вредност б се не повећава.
Кључне разлике између & и &&
- Оператор & је логичан као и битовски оператер, јер ради на оба боолеан-а као и бинарни подаци, док је && оператор само логички оператер јер ради само на боолеан типу података.
- Оператор и оцењује и страну израза да би добио коначни резултат, док оператор && процењује само леву страну израза и ако испадне лажно, он не процењује ни десну страну израза.
Белешка:
Док оцењујемо боолеан тип података, оба оператора дају резултат “труе” само ако су оба операнда тачна, иначе се враћа “фалсе”.
Закључак:
Оператор & & &, оба се користе за процену боолеовог стања, док се оператор и користи за битну операцију. Када захтевамо да проценимо и страну израза, користи се и оператор и можемо користити && оператор.