Tôi cần lấy bit thứ n của một số nguyên, hoặc đã ký hoặc chưa ký, trong Ruby.bit trích xuất trong số nguyên Ruby
x = 123 # that is 1111011
n = 2 # bit 2 is ...0
Các đoạn mã sau đây không hoạt động trong trường hợp chung:
x.to_s(2)[-(n+1)] #0 good! but...
vì số âm không thể hiện dưới dạng 2-bổ sung:
-123.to_s(2) # "-1111011"
Vậy làm thế nào để tiếp tục ?
kết quả 1 và 0 bị đảo ngược. Tôi đã cố chỉnh sửa bài đăng của bạn mà không thành công – JCLL
@JCLL: Cảm ơn! Đó là một trường hợp cắt và dán sẽ thực sự có * ngăn chặn * một lỗi :-) –
Heh, nhưng một nhà điều hành Ruby mát mẻ: [] trên Fixnum, bằng cách nào đó cả hai đồng bằng như ngày trong các tài liệu chưa được chôn cất ra khỏi tầm nhìn cùng một lúc. – DigitalRoss