Tôi có rất nhiều #define
trong mã của tôi. Bây giờ một vấn đề lạ lùng đã tăng lên.Giá trị của C xác định thay đổi đột ngột
Tôi có điều này:
#define _ImmSign 010100
(Tôi đang cố gắng để mô phỏng một số nhị phân)
Rõ ràng, tôi hy vọng con số này sẽ trở thành 10100. Nhưng khi tôi sử dụng số đó đã thay đổi vào 4160.
Điều gì đang xảy ra ở đây? Và làm thế nào để ngăn chặn nó?
BỔ SUNG
Được rồi, vì vậy đây là do ngôn ngữ giải thích điều này như một bát phân. Có một số cách thông minh tuy nhiên để buộc các ngôn ngữ để giải thích các con số như số nguyên? Nếu số 0 đầu tiên xác định bát phân và 0x xác định hệ thập lục phân ngay bây giờ mà tôi nghĩ về nó ...
010100 trong bát phân là 0 * 1 + 0 * 8 + 1 * 64 + 0 * 512 + 1 * 4096 = 64 + 4096 = 4160. –
http://www.boost.org/doc/libs/1_42_0/libs/utility/utility.htm#BOOST_BINARY Điều này có thể hữu ích cho bạn. mặc dù C++, tôi nghĩ rằng đó là preprocessor chỉ – Anycorn
@aaa thx cho đề xuất này, nhưng tôi không nghĩ rằng tôi được phép sử dụng thư viện của bên thứ ba. – NomeN