Giáo trình ngôn ngữ C



tải về 2.34 Mb.
Chế độ xem pdf
trang19/62
Chuyển đổi dữ liệu16.03.2023
Kích2.34 Mb.
#54376
1   ...   15   16   17   18   19   20   21   22   ...   62
C ĐHQGHN

Phép >> (dịch phải) 
Cú pháp 
toán_hạng_1 >> toán_hạng_2 
Lệnh này thực hiện tương tự như SHL nhưng dịch các bit của  sang phải, các 
bit bên trái sẽ được điền bằng 0, các bit bên phải sẽ bị ghi đè bởi bit bên trái. 
Minh hoạ toán tử >> 
Khi dịch số n sang phải k bit, kết quả thu được(n/2
k

 
e. Các phép toán tích luỹ (gán số học) 
Trong các biểu thức toán số học chúng ta rất hay gặp các biểu thức dạng như a = a +k, 
tức là chúng ta tăng a lên một lượng bằng k, hoặc như a = a << k, tức là dịch các bít của a 


Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
 C
21
sang trái k vị trí rồi lại gán vào a. Trong C có các phép toán thực hiện chức năng này và ta 
gọi là các phép toán tích luỹ. 
Cú pháp chung: 
 
<đích> =
Trong đó <đích> là một biến thuộc kiểu số nguyên hoặc thực,  là một giá trị phù 
hợp.  là dấu phép toán số học hay trên bit (hai ngôi): +,-,*,/,%, <<,>>,&,|,^ 
Với ý nghĩa
 
<đích> =  ≡ <đích> = <đích>   
toán tử ví 
dụ về cách dùng 
ý nghĩa 
+= 
a += b 
a = a + b 
-= 
a -= b 
a = a - b 
*= 
a *= b 
a = a * b 
/= 
a /= b 
a = a / b 
%= 
a %= b 
a = a % b 
<<= a 
<<= 
b a = a << b 
>>= a 
>>= 
b a = a >> b 
&= 
a &= b 
a = a & b 
|= 
a |= b 
a = a | b 
^= 
a ^= b 
a = a ^ b 
Lưu ý: hai kí tự  và dấu = phải viết liền và trở thành 1 dấu toán tử của ngôn ngữ C. 
Bằng cách dùng toán tử tích luỹ, trong một số trường hợp chúng ta có thể giảm sự phức 
tạp (về cách viết) của một biểu thức rất nhiều và như vậy sẽ giảm khả năng viết sai một 
cách đáng kể.
Ví 
dụ: a[f(i)+b[j*2]-srtlen(s)] = a[f(i)+b[j*2]-strlen(s)] +6; 
được viết thành a[f(i)+b[j*2]-strlen(s)] += 6; 
f. Toán tử điều kiện 

tải về 2.34 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   15   16   17   18   19   20   21   22   ...   62




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương