2010-02-21 37 views
9

Sự khác biệt giữa Int32UInt32 là gì?Sự khác nhau giữa Int32 và UInt32 là gì?

Nếu chúng giống nhau với khả năng phạm vi dung lượng, câu hỏi là vì lý do gì mà UInt32 được tạo? Khi nào tôi nên sử dụng UInt32 thay vì Int32?

+0

Bạn có biết sự khác biệt giữa số nguyên đã ký và chưa ký? –

+0

@Moron: Tôi biết. chỉ cần suy nghĩ vô tình về UInt32 là 'intman không được quản lý' thay vì 'unsigned int32'. hhaaa !! –

+0

Bỏ phiếu để đóng thành "quá bản địa hóa", vì câu hỏi này chỉ hữu ích cho những người nghĩ rằng UInt32 có nghĩa là "int32 không được quản lý". Tôi không nghĩ còn nhiều người còn lại nữa. –

Trả lời

31

UInt32 không cho phép số âm. Từ MSDN:

Loại giá trị UInt32 thể hiện số nguyên không dấu có giá trị từ 0 đến 4,294,967,295.

+0

+1 để giải thích những gì U đã làm. – tsilb

9

Một số nguyên là -2147483648 đến 2147483647 và một số nguyên unsigned là từ 0 đến 4294967295.

Bài viết này có thể giúp bạn:

http://www.csharp-station.com/Tutorials/Lesson02.aspx 
1

UInt32 là unsigned. Nó không thể được sử dụng để đại diện cho số âm nhưng có thể chứa số dương lớn hơn.

4

uint32 là một số nguyên không dấu với 32 bit có nghĩa là bạn có thể đại diện cho 2^32 số (0-4294967295). Tuy nhiên,

tuy nhiên để thể hiện số âm, một bit của 32 bit được dành riêng để biểu thị số dương hoặc số âm. điều này khiến bạn có 2^31 số có thể có trong số âm và cũng là số dương. phạm vi kết quả là -2147483648 đến 2147483647 (phạm vi tích cực bao gồm giá trị 0, do đó chỉ có 2147483647). đại diện này được gọi là int32.

bạn nên chọn unsigned cho các số không thể nhận được âm theo định nghĩa vì nó cung cấp cho bạn phạm vi rộng hơn, nhưng bạn nên nhớ rằng chuyển đổi từ và sang int32 là không thể vì int32 không thể giữ phạm vi uint32 và ngược lại.

Các vấn đề liên quan