2012-05-30 43 views
7

Tôi bị lúng túng bởi cách chuyển đổi từ giá trị nhị phân sang giá trị char trong c.Chuyển đổi từ nhị phân thành char trong C

Ví dụ: giả sử tôi có 01010110 và muốn in chữ cái tương ứng 'V' từ đó. Làm thế nào để tôi làm điều này?

Cảm ơn bạn đã trợ giúp!

+1

Ý bạn là bạn có "1010110"? Số nhị phân trong sổ đăng ký, ký tự 1/0, cái gì? (Nếu đó là giá trị nhị phân, một phép '(char)' là tất cả những gì bạn cần.) –

+2

Hiển thị mã cho chúng tôi !! Nếu không, chúng tôi đang đoán. – abelenky

Trả lời

13
#include <stdio.h> 
#include <stdlib.h> 
int main(void) 
{ 
    char *data = "01010110"; 
    char c = strtol(data, 0, 2); 
    printf("%s = %c = %d = 0x%.2X\n", data, c, c, c); 
    return(0); 
} 

Output:

01010110 = V = 86 = 0x56 

Tài liệu tham khảo:

4

Bạn có thể sử dụng để phân tích strtol() một số trên một chuỗi. Đối số cuối cùng (trong trường hợp này là 2) là cơ số cho phép chuyển đổi.

char c = strtol("01010110", (char **)NULL, 2); 

Thông tin thêm về chức năng phân tích số này và các số khác here.

-1

Có điều gì đó hơi khác:

Từ nhị phân, tôi tính toán int và chỉ cần nhập int vào char.

int i; 
char c = (char)i; 
+0

Việc chuyển đổi cuối cùng là hiển nhiên; vẫy tay 'từ nhị phân, tôi tính toán toán học int' không chứa thông tin hữu ích. –

Các vấn đề liên quan