Số âm được biểu thị bằng số nguyên đã ký 32 bit như thế nào? Có bổ sung hai hay một phần không? hoặc bit cuối cùng bên trái giống như một lá cờ? Ví dụ: (-10)Số âm được biểu thị bằng số nguyên đã ký 32 bit như thế nào?
Trả lời
Hầu hết các máy tính ngày nay sử dụng two's complement cho các số nguyên đã ký, nhưng nó có thể thay đổi theo kiến trúc phần cứng, ngôn ngữ lập trình hoặc các vấn đề nền tảng cụ thể khác. Đối với đại diện bổ sung hai, bit quan trọng nhất ("ngoài cùng bên trái") được gọi là bit dấu và sẽ được đặt cho số nguyên âm và rõ ràng cho số nguyên không âm. Tuy nhiên, nó không chỉ là một "lá cờ". Xem Wikipedia article để biết thêm thông tin.
Vì vậy, bit trước sẽ 1 cho âm và 0 cho dương? Còn 0? – User
Không được biểu thị bằng tất cả các bit bằng 0. –
Thông thường nó bổ sung 2 lần.
0xFFFFFFFF = -1
0xFFFFFFFE = -2
0xFFFFFFFD = -3
...
& vân vân
Bit quan trọng nhất (bit cuối cùng bên trái) được thiết lập cho số âm.
Bạn có nghĩa là "bit đầu tiên ở bên trái" không? –
Làm thế nào về "bit đầu tiên từ bên trái" hoặc "bit cuối TỪ bên phải". :) –
Từ tiêu chuẩn C99:
Đối với các loại nguyên ký kết, các bit của các đại diện đối tượng chịu chia thành ba nhóm: bit giá trị, bit đệm, và bit dấu. Có không cần bất kỳ bit đệm nào; ở đó phải chính xác một bit dấu. Mỗi bit là bit giá trị phải có giá trị giống nhau là giống như trong các đối tượng của loại tương ứng (nếu có là bit giá trị M trong loại đã ký và N M = N). Nếu bit dấu là zero, nó sẽ không ảnh hưởng đến giá trị kết quả. Nếu các bit dấu hiệu là một, giá trị được sửa đổi trong một trong các cách sau:
- các giá trị tương ứng với dấu bit 0 là phủ nhận (dấu và độ lớn);
- bit dấu có giá trị - (2N) (hai bổ sung);
- bit dấu có giá trị - (2N - 1) (phần bổ sung).
nào sau đây áp dụng là thực hiện xác định, như là liệu giá trị với dấu bit 1 và tất cả các bit giá trị zero (đối với lần đầu tiên hai), hoặc với bit dấu và tất cả các giá trị bit 1 (đối với bổ sung của một người), là một cái bẫy đại diện hoặc một giá trị bình thường. Trong số trường hợp ký hiệu và độ lớn và bổ sung của những người đó, nếu đại diện này là giá trị bình thường, nó là được gọi là số không âm.
Tôi nghĩ rằng câu trả lời là 0110
, preceeded bởi 1 lặp đi lặp lại 28 lần, do đó nó trông giống như:
1111 1111 1111 1111 1111 1111 1111 0110;
bước:
chút đại diện cho 10 là:
0000 0000 0000 0000 0000 0000 0000 1010;
0->1
và1->0
cho tất cả các bit:1111 1111 1111 1111 1111 1111 1111 0101;
thêm 1 đến bit cuối cùng, và tuyên truyền để các bit trước, đã hoàn tất!
1111 1111 1111 1111 1111 1111 1111 0110;
===
Bạn có thể xác minh bằng cách thêm nó với 10, và bạn sẽ nhận được 0 cho tất cả các bit. Như đã đề cập ở trên, nó là 2-based và sau hai bổ sung.
- 1. Biểu thị số bit của các số âm
- 2. Nhân SSE 4 số nguyên 32 bit
- 3. Số lớn hơn 2^32 được xử lý bởi máy 32 bit như thế nào?
- 4. Tìm vị trí bit trong số nguyên 32 bit chưa ký
- 5. Python, cách đặt số nguyên 32 bit vào mảng byte
- 6. Kết quả lạ sau khi gán 2^31 cho biến số nguyên 32 bit đã ký và chưa ký
- 7. thay thế byte trong 32 bit số
- 8. Bản đồ một phao 32 bit đến một số nguyên 32 bit
- 9. Chuyển đổi từ số nguyên 32 bit thành 4 ký tự
- 10. C++: Có an toàn khi so sánh số nguyên 64 bit với số nguyên 32 bit không?
- 11. Làm cách nào để hiển thị số đôi 64 bit bằng VBScript trên Hệ điều hành 32 bit?
- 12. Làm thế nào để kiểm tra nếu một số nguyên đã ký là neg hoặc pos?
- 13. bit trích xuất trong số nguyên Ruby
- 14. 64 bit bằng cách phân chia 32 bit
- 15. Làm thế nào để đúc một số nguyên 32 bit từ unsigned để đăng nhập vào MySQL hoặc PHP?
- 16. Các thông số được chuyển khi gọi Printf từ bit asm 64 bit như thế nào?
- 17. số nguyên không âm
- 18. Tìm số nguyên nhỏ nhất mà không thể được biểu diễn dưới dạng một IEEE-754 32 bit float
- 19. Làm thế nào người ta có thể đọc một bit số nguyên bằng bit trong Java?
- 20. python 32-bit và 64-bit số nguyên toán với tràn ý định
- 21. Làm thế nào để có được giá trị số nguyên đã ký của một con trăn dài?
- 22. Một cách để tìm số nguyên tố gần nhất với số nguyên dài chưa được ký (rộng 32 bit) trong C?
- 23. literals số nguyên âm lớn
- 24. Chỉ số đã ký với số tử chưa ký
- 25. C#, ký hiệu thập lục phân và số nguyên đã ký
- 26. Chuyển đổi số nguyên 32 bit thành 4 byte dữ liệu trong javascript
- 27. nguyên tử trong 32/64 bit
- 28. SQL - Kiểu số nguyên - Phát hiện bit
- 29. Chuyển đổi số nguyên không dấu 32 bit (lớn cuối) thành dài và quay lại
- 30. chuyển đổi địa chỉ IP thành số nguyên 32 bit trong ruby
Trong ngữ cảnh nào? Các hệ thống/nền tảng khác nhau sẽ làm việc khác nhau. –
Bạn có nghĩa là "bit đầu tiên ở bên trái" không? –