Kích thớc của các kiểu dữ liệu nguyên thủy

Một phần của tài liệu Tổng quan về Lập Trình Java (Trang 63 - 67)

Mỗi gía trị dữ liệu trong một máy tính đợc biểu diễn nh là một số nhị phân.

dữ liệu định thớc Giá trị nhỏ nhất

boolean true hoặc false false 1 bit

char Ký tự mã Unicode \u0000 16 bit \u0000 \uFFFF

byte Số nguyên có dấu 0 8 bit -128 127

short Số nguyên có dấu 0 16 bit -32768 32767

int Số nguyên có dấu 0 32 bit -2147483647 2147483648

long Số nguyên có dấu 0 64 bit -9223372036854775808 9223372036854775807

fload Số dấu phẩy động

(chuẩn IEEE 754) 0.0 32 bit ±3.40282347E+38

±1.40239846E-45

doule Số dấu phẩy động

(chuẩn IEEE 754) 0.0 64 bit ±1.79769313486231570E+308

±4.94065645841246544E-324

Bảng A.1: Các kiểu dữ liệu nguyên thuỷ.

Toán tử

Chúng ta đã bàn luận về các toán tử số học (+, -, *, /, %), các toán tử so sánh (==,

!=, <, >, <=, >=), các toán tử logic (!, &&, ||, &, |, ^), cũng nh các toán tử tăng và giảm (++, --). Trong phần này chúng tôi giới thiệu với bạn những kiểu toán tử khác đó là toán tử cấp bit, toán tử điều kiện, và toán tử gán.

Để nắm đợc bản chất của những toán tử cấp bit (bitwise operators), bạn phải hiểu sâu sắc rằng các số trong máy tính đợc biểu diễn dới dạng nhị phân. Các toán tử này kết hợp những cặp số nguyên ở mức cơ sở bit-by-bit. Xem bảng A.2.

Toán tử điều kiện (conditional operator) là một toán tử ba ngôi duy nhất trong Java. Một biểu thức có dạng:

expr1 ? expr2 : expr3

đợc ớc lợng bằng cách ớc lợng expr1 và sau đó trả về giá trị của expr2 hoặc

(x==0) ? y : y/x sẽ trả về giá trị y nếu x là zero, và y/x nếu ngợc lại. Nh vậy một biểu thức:

x = expr1 ? expr2 : expr3;

sẽ tơng đơng với:

if (expr1)

x = expr2;

else

x = expr3;

Toán tử ý nghĩa Ví dụ (trong hệ thập phân và nhị phân)

& : AND cấp bit. Mỗi bit trong kết quả thu đợc từ hai bit tơng ứng trong các tham số bằng cách sử dụng toán tử AND: 1 nếu cả hai bit đều là 1, 0 nếu ngợc lại. 108 & 85 = 68 01101100 & 01010101 = 01000100 | : OR bao gồm cấp bit.

Mỗi bit trong kết quả thu đợc từ hai bit tơng ứng trong các tham số bằng cách sử dụng toán tử OR: 0 nếu cả hai bit đều là 0, 1 nếu ngợc lại. 108 | 85 = 126 01101100 | 01010101 = 01111101 ^ : OR loại trừ cấp bit.

Mỗi bit trong kết quả thu đợc từ hai bit tơng ứng trong các tham số bằng cách sử dụng toán tử OR loại trừ: 0 nếu hai bit giống nhau, 1 nếu ngợc lại.

108 ^ 85 = 57

01101100

^ 01010101

= 00111001

~ : phần bù cấp bit. Mỗi bit trong kết quả thu đợc từ bit tơng ứng trong tham số bằng cách sử dụng toán tử NOT: 0 nếu bit tơng ứng là1, 1 nếu ngợc lại.

~108 = 147

~ 01101100

= 10010011

nhất về bên trái một số lần đợc quy định trong tham số thứ hai (với những số đủ nhỏ, m << n bằng m x 2n). 00111010 << 2 = 11101000 >>> : dịch phải (điền zero).

Dịch các bit trong tham số thứ nhất về bên phải một số lần đợc quy định trong tham số thứ hai (m >>> n bằng m / 2n khi m dơng). 58 >>> 2 = 14 00111010 >>> 2 = 00001110 >> : dịch phải (điền dấu).

Giống nh >>>, trừ việc bit trái nhất (bit dấu) đợc sao lại (m >> n

bằng m / 2n khi m dơng).

58 >> 2 = 14

00111010

>> 2

= 00001110

Bảng A.2: Các toán tử cấp bit.

Các toán tử gán (assignment operators) hỗ trợ một cách viết ngắn gọn cho một vài dạng điều lệnh gán thông thờng, chẳng hạn:

x = x + expression;

sẽ tơng đơng với:

x += expression;

Tất cả các toán tử gán đều làm việc theo cách này. Nếu x là một biến (hoặc một biểu thức có thể xuất hiện hợp lệ ở vế trái một điều lệnh gán) và e là một biểu thức, thì các cách viết sau là tơng đơng:

Gán ngắn gọn Gán đầy đủ x += e x = x + e x -= e x = x – e x *= e x = x * e x /= e x = x / e x %= e x = x % e

x &= e x = x & ex |= e x = x | e x |= e x = x | e x ^= e x = x ^ e x <<= e x = x << e x >>= e x = x >> e x >>>= e x = x >>> e

Trong đó x++ và x--tơng đơng với x += 1 và x -= 1.

Một phần của tài liệu Tổng quan về Lập Trình Java (Trang 63 - 67)

Tải bản đầy đủ (DOC)

(75 trang)
w