Diğer Operatörler
- ** : Üs alma
out_cikis <= in_giris_1 ** 3;
Yukarıda verilen tanımlamada çıkış değerine, in_giris_1 değerinin 3. dereceden kuvveti atanmaktadır. Örneğin in_giris_1 değeri “010” olsun. Bu durumda out_cikis değerine “000001000” atanmaktadır.
- abs : Mutlak değer
out_cikis <= abs(in_giris_1);
Yukarıda verilen tanımlamada çıkış değerine, in_giris_1 değerinin mutlak değeri atanmaktadır. Örneğin in_giris_1 değeri “010” olsun. Bu durumda out_cikis değerine “010” atanmaktadır. in_giris_1 değeri “101” olduğu durumda ise out_cikis değerine “011” atanmaktadır.
- not : Tersi
out_cikis<= not(in_giris_1);
Yukarıda verilen tanımlamada çıkış değerine, in_giris_1 değerinin tersi atanmaktadır. Örneğin in_giris_1 değeri”010” olsun. Bu durumda çıkış out_cikis değerine “101” atanmaktadır.
Operatörlerin Kullanımı
Aşağıda verilen iki tanımlamayı inceleyelim:
- out_cikis <= in_giris_1 and in_giris_2 and in_giris_3 and in_giris_4;
- out_cikis <= in_giris_1 * in_giris_2 * in_giris_3 + in_giris_4;
Yukarıda verilen iki tanımlama aynı çıkış değerini üretmesine rağmen aynı anlama gelmemektedir. 1. ifade de and operatörünün or operatörüne üstünlüğü yoktur. 2. ifade de ise * operatörünün + operatörüne göre üstünlüğü vardır. Bu nedenle tanımlamalar kullanılırken hata yapılma olasılığı yüksektir. Kullanıcının gerçekleştirmek istediği işleme göre parantez kullanımı ile hata olasılığını azaltabilir.
Aşağıda verilen iki ifade parantez kullanımı ile farklı tanımlama yapılmıştır. Örneğin in_giris_1= ‘0’, in_giris_2 = ‘1’, in_giris_3 = ‘0’ ve in_giris_4 = ‘1’ olması durumunda 1. ifade (0 and 1 and 0) or 1 = 1 çıkışını verirken 2. ifade (0 and 1) and (0 or 1) = 0 çıkışını vermektedir.
- out_cikis <= (in_giris_1 and in_giris_2 and in_giris_3) or in_giris_4;
- out_cikis <= (in_giris_1 and in_giris_2) and (in_giris_3 or in_giris_4);