cuốn sách gpt4 ai đã làm

Chuyển đổi ký tự sang nhị phân trong C++ hai ký tự cùng một lúc để có dạng nhị phân 16 bit

In lại Tác giả: Walker 123 Thời gian cập nhật: 27-11-2023 23:11:43 hai mươi bốn 4
mua khóa gpt4 Nike

Xin chào, tôi muốn chuyển đổi hai ký tự trong chuỗi thành nhị phân cùng một lúc? Làm cách nào tôi có thể làm điều này bằng cách áp dụng số học đơn giản (tức là tạo hàm của riêng tôi?)

Ví dụ: chuỗi của chúng tôi là =xin chào thế giới:

Đầu ra mong muốn (hai ký tự cùng một lúc):

 anh ấy // cần dạng nhị phân 0 và 1 (16 bit cho 2 ký tự 'h' và 'e'
ll // tương tự
o(dấu cách) // dấu cách đơn cũng được tính là ký tự có 8 bit 0 ở dạng nhị phân.

rl
d(space) // space lại bằng một ký tự có 8 bit 0

Làm thế nào để đối phó với nó. Tôi không muốn bất kỳ ascii nào ở giữa. Trực tiếp từ ký tự sang nhị phân... điều này có khả thi không?

câu trả lời hay nhất

Nếu bạn đang tìm kiếm mộtchữcách biểu diễn dạng nhị phân của một ký tự, thì đây là một ví dụ nhỏ về cách thực hiện:

một người sẽ c Biểu diễn nhị phân của được in ra std::cout Chức năng nhỏ (chỉ dành cho các chữ cái ASCII tiêu chuẩn):

void printBinary(char c) {
vì (int i = 7; i >= 0; --i) {
std::cout << ((c & (1 << i))? '1' : '0');
}
}

Sử dụng nó như thế này (chỉ các cặp ký tự sẽ được in):

std::string s = "xin chào"; // Một chuỗi nào đó.

for (int i = 0; i < s.size(); i += 2) {
printBinary(s[i]);
std::cout << " - ";
printBinary(s[i + 1]);
std::cout << " - ";
}

Đầu ra:

01101000 - 01100101 - 01101100 - 01101100 - 01101111 - 00100000 -

biên tập:

Trên thực tế, sử dụng std::bitset Đây là những gì cần thiết:

std::string s = "xin chào"; // Một chuỗi nào đó.

for (int i = 0; i < s.size(); i += 2) {
std::cout << std::bitset<8>(s[i]) << " ";
std::cout << std::bitset<8>(s[i + 1]) << " ";
}

Đầu ra:

01101000 01100101 01101100 01101100 01101111 00100000

Nếu bạn muốn lưu trữ một số nhị phân các cặp ký tự trong std::vectơ , như đã đề cập trong phần nhận xét, thì bạn có thể thực hiện việc này:

std::vector bitvec;
std::bit chuỗi;
for (int i = 0; i < s.size(); i += 2) {
bit = std::bitset<8>(s[i]).to_string() + std::bitset<8>(s[i + 1]).to_string();
bitvec.push_back(bit);
}

Về chuyển đổi ký tự sang nhị phân trong C++ - hai ký tự cùng một lúc để có dạng nhị phân 16 bit, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/19844122/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress