Sự khác biệt giữa Int16, Int32,.. trong C#?

c-sharp

(Anh chàng Doggo) #1

Em mới tiếp cận C# và không hiểu sự khác biệt giữa các loại số nguyên Int16,Int32,… là gì, các anh giúp em được không ạ?
Nếu sự khác nhau là miền giá trị thì miền giá trị của đám này là khoảng nào ạ?


(Trần Hoàn) #2

Int16 có giá trị từ 0 - 2^15 đến 2^15 - 1
Int32 có giá trị từ 0 - 2^31 đến 2^31 - 1

trong VS2013 thì int được ánh xạ thành Int32. 2 kiểu dữ liệu em nói ở trên là của .NET, không phải của C#


(Văn Dương) #3

Nó lưu giữ giá trị loại Integer. Tức là chỉ lưu số nguyên có dấu.
Con số 16,32,64 ở phía sau cho biết giá trị được lưu bằng bao nhiêu bit. Càng nhiều bit thì khoảng giá trị càng lớn. Tức là số bit lớn hơn sẽ llưu được số integer giá trị lớn hơn.

Với 1 số nguyên Int16 sẽ dùng 16 bit để lưu giá trị của 1 số.
Trong 16 bit này sẽ có 1 bit để lưu dấu, cho biết số đó là âm hay dương.
Còn lại 15 bit sẽ dùng để tạo nên 2^15 giá trị khác nhau cho mỗi dải giá trị âm và dương.

Tuy nhiên không có giá trị -0 và +0 nên số 0 chiếm mất 1 slot trong dải số dương.
Vậy mới có 2^15 số âm 1 số 0 và 2^15-1 số dương.
Số nguyên n bit sẽ tính tương tự.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?