Hướng dẫn convert 8 bits to integer python - chuyển đổi 8 bit thành số nguyên python
Nói rằng tôi có 8 bit
tương đương với byte
Nhưng tôi những gì tôi thực sự có là 8 nhị phân (tốt, số nguyên). Làm cách nào để chuyển đổi 8 nhị phân này thành byte tương ứng? Tôi đang cô
Nhưng điều này mang lại cho tôi một mảng byte thay vì một byte duy nhất ... Đã hỏi ngày 27 tháng 9 năm 2014 lúc 20:49Sep 27, 2014 at 20:49
4 Sau đây được hiểu là một bát phân, vì nó được đặt trước với 1
Nếu bạn muốn giải thích điều này là nhị phân, bạn sẽ thêm tiền tố 2
Điều này giống như đại diện cho số là 3
Và để thể hiện giá trị là 4
Cũng lưu ý tiền tố cho 5 là 6Đã trả lời ngày 27 tháng 9 năm 2014 lúc 20:53Sep 27, 2014 at 20:53
Cory Kramercory KramerCory Kramer Huy hiệu vàng 111K1515 gold badges160 silver badges209 bronze badges 2 Bạn đang sử dụng phiên bản Python nào? Tôi nhận được 85 và 'U' bằng cách sử dụng các câu lệnh tương tự như bạn đã làm, sử dụng 2.7.8:
Để thực sự viết dữ liệu nhị phân vào tệp, hãy xem câu trả lời này (cho PY 2 và 3) và cái này. Tệp 7 phải là 'WB'. Và đừng chuyển đổi thành chr.
Đã trả lời ngày 27 tháng 9 năm 2014 lúc 21:21Sep 27, 2014 at 21:21
Aneroidaneroidaneroid 12.7k3 Huy hiệu vàng39 Huy hiệu bạc62 Huy hiệu Đồng3 gold badges39 silver badges62 bronze badges 1 Bạn có thể tìm thấy các bài viết của tôi về Wagtail và Scracy tại Accordbox. Michael Yin Tôi là một nhà phát triển Python đam mê từ Trung Quốc và viết về Wagtail/Django và Scracy. Tôi cũng có sẵn để được thuê cho các công việc từ xa. Đọc thêm về tôi. Python đã cung cấp thư viện để xử lý thao tác bit trong hầu hết các trường hợp, tuy nhiên, tôi không thể tìm thấy một cách tốt để chuyển đổi byte đơn 8 bit thành loại Int đã ký bằng cách sử dụng lib tích hợp. Kịch bảnDưới đây là kịch bản, một số nhà phát triển Java mới cần băm mật khẩu và lưu nó vào cơ sở dữ liệu, anh ta đã không chuyển đổi kết quả băm thành chuỗi HEX nhưng chỉ gọi là toString để lưu nó vào cơ sở dữ liệu. Mã Java như thế này StringBuilder sb = new StringBuilder(); for (byte b : strBytes) { sb.append(b); //this one is better choice //sb.append(String.format("%02X ", b)); } return sb.toString(); Sample output 12333-124-118-55-8153-6613-3745107-97-61-1232552-37-12432 Byte trong Java được biểu thị bằng int đã ký trong phạm vi (-128, 127), byte python được biểu thị bằng int không dấu trong phạm vi (0, 255). Vì vậy, tôi đã chuyển đổi byte 8 bit trong Python thành Int đã ký để so sánh thực hiện. Solution-1Vì Java sử dụng một chút để đánh dấu dấu hiệu, vì vậy chúng tôi có thể làm cho nó mà không cần sử dụng LIB 3 bên if byte > 127: return (256-byte) * (-1) else: return byte Solution-2Có một số LIB 3 bên để cung cấp hỗ trợ tốt cho bit thao tác. Bitstring được tôi khuyến nghị, bạn có thể sử dụng nó để làm việc theo bit. 0Khá đơn giản! Và bạn có thể lặn sâu hơn để tìm tính năng tốt khác Gửi cho tôi tin nhắnHãy cho tôi biết thêm về dự án của bạn và xem liệu tôi có thể giúp bạn không. Liên hệ với tôi |