2013-10-03 18 views
7

Tôi thấy^0 trong cơ sở mã.^0 trong golang là gì?

Ví dụ:

type stat struct { 
    ... 
    min int64 
    ... 
} 

newStat := stat{min: ^0} 

không^0 nghĩa là gì?

Trả lời

18

Theo the docs:

^x Bitwise bổ sung là m^x với m = "tất cả các bit thiết lập để 1" cho

x unsigned và m = -1 cho ký x

Điều này có nghĩa là ^0 giống với ~0 bằng các ngôn ngữ chính khác.

Trên two's complement (hầu hết các ngôn ngữ lập trình áp dụng) giá trị bổ sung của số không là -1 (trên loại dữ liệu đã ký). Vì vậy, đây là một cách để viết:

newStat := stat{min: -1} 
+0

Xin cảm ơn phản hồi. Tôi là người mới bắt đầu và tôi vẫn không biết ý nghĩa của nó là gì. ~ 0 là gì? Bổ sung bitwise là gì? Ông có thể làm rõ? Cảm ơn trước !! – samol

+3

Bổ sung bitwise lấy từng bit từ một kiểu dữ liệu và đảo ngược nó. Ví dụ 0 trong 4-bit nhị phân là 0000 bổ sung bitwise của nó là 1111. Cùng một cách mà 10 trong một nhị phân 4-bit là 1010 và bổ sung của nó là 0101. –

+1

Để tham khảo thêm, đọc trên [bitwise operation] (http://en.wikipedia.org/wiki/Bitwise_operation) nói chung. – justinas

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