Tôi đang cố gắng chuyển đổi số lần gửi 1s và 0 từ stdin thành giá trị nhị phân tương ứng của chúng (trong đó chuỗi như "11110111" sẽ được chuyển thành 0xF7). Điều này có vẻ khá tầm thường nhưng tôi không muốn phát minh lại bánh xe vì vậy tôi tự hỏi nếu có bất cứ điều gì trong C/C + + tiêu chuẩn libs mà có thể đã thực hiện một hoạt động như vậy?Chuyển đổi chuỗi 1 và 0 thành giá trị nhị phân
Trả lời
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char * ptr;
long parsed = strtol("11110111", & ptr, 2);
printf("%lX\n", parsed);
return EXIT_SUCCESS;
}
Đối với số lượng lớn, có như một phiên bản long long
, strtoll
.
Điều này có vẻ đúng. Mối quan tâm duy nhất của tôi là những sợi dây rất lớn, suy nghĩ về nó bây giờ, có thể sẽ cần một số mã tùy chỉnh. – grosauro
Bên cạnh đó strtol cũng đang đi dạo (hai L) cho các số nguyên "dài". – jkramer
Ah, bây giờ tôi thấy quan điểm của bạn. Độ dài chuỗi không được là vấn đề miễn là số kết quả khớp với số nguyên dài hoặc dài. – jkramer
Bạn có thể sử dụng strtol
char string[] = "1101110100110100100000";
char * end;
long int value = strtol (string,&end,2);
Bạn có thể sử dụng std :: bitset (nếu chiều dài bit của bạn được biết tại thời gian biên dịch)
Mặc dù với một số chương trình bạn có thể chia nhỏ thành khối và kết hợp.
#include <bitset>
#include <iostream>
int main()
{
std::bitset<5> x(std::string("01011"));
std::cout << x << ":" << x.to_ulong() << std::endl;
}
Bạn có thể sử dụng Boost động BitSet:
boost::dynamic_bitset<> x(std::string("01011"));
std::cout << x << ":" << x.to_ulong() << std::endl;
- 1. Chuyển đổi hệ số có 2 mức thành giá trị nhị phân 0/1 trong R
- 2. chuyển đổi giá trị kép thành giá trị nhị phân
- 3. Cách chuyển đổi "0" và "1" thành false và true
- 4. Chuyển đổi chuỗi thập lục phân thành chuỗi nhị phân
- 5. Làm thế nào để chuyển đổi một chuỗi nhị phân thành một giá trị float?
- 6. Chuyển đổi một byte thành chuỗi nhị phân trong C#
- 7. Làm thế nào để chuyển đổi NSInteger thành giá trị nhị phân (chuỗi)
- 8. Chuyển đổi chuỗi nhị phân thành số nguyên
- 9. Cách nhanh nhất để chuyển đổi chuỗi thành nhị phân?
- 10. Chuyển đổi chuỗi nhị phân thành bigint trong MySQL?
- 11. java: chuyển đổi chuỗi nhị phân thành int
- 12. Chuyển đổi các yếu tố R thành các giá trị ma trận nhị phân
- 13. Chuyển đổi thành nhị phân và giữ số 0 đứng đầu trong Python
- 14. Chuyển đổi chuỗi thập lục phân (hex) thành một chuỗi nhị phân
- 15. Làm thế nào để chuyển đổi giá trị chuỗi nhị phân để thập phân
- 16. SQL Server Chuyển đổi số nguyên thành chuỗi nhị phân
- 17. Chuyển đổi chuỗi nhị phân thành mảng byte
- 18. Chuyển đổi tệp nhị phân thành chuỗi Base64
- 19. Chuyển đổi chuỗi số không nhị phân và những
- 20. chuyển đổi giá trị âm thành 0 trong mysql
- 21. Chuyển đổi chuỗi đại diện nhị phân của một byte với giá trị nhị phân thực tế bằng Python
- 22. Chuyển đổi số thập phân thành nhị phân trong R?
- 23. Chuyển đổi Pythonic thành nhị phân?
- 24. Chuyển đổi hình ảnh thành nhị phân?
- 25. Chuyển đổi dữ liệu hàng thành cột nhị phân
- 26. Làm thế nào để chuyển đổi 'chuỗi nhị phân' thành chuỗi bình thường trong Python3?
- 27. Chuyển đổi từ nhị phân thành char trong C
- 28. Chuyển đổi.ToBoolean và Boolean.Parse không chấp nhận 0 và 1
- 29. Cách chuyển đổi giá trị UUID thành chuỗi
- 30. Chuyển đổi chuỗi đại diện của số nhị phân thành int trong C#
Không phải bài tập về nhà. Tôi đang cố gắng để nhúng một công cụ chuyển đổi để dễ dàng đọc vào một bộ công cụ gỡ lỗi nhưng tất cả các đầu vào của chúng tôi là thông qua trong định dạng chuỗi. – grosauro