2009-05-10 48 views

Trả lời

21
char c; 
int ascii = (int) c; 
s2.data[j]=(char)count; 

Một char một số nguyên, không cần chức năng chuyển đổi.

Có thể bạn đang tìm kiếm các hàm hiển thị số nguyên dưới dạng chuỗi - sử dụng biểu diễn thập phân, nhị phân hoặc thập phân?

3

Nếu bạn muốn nhận được giá trị ASCII của một nhân vật trong mã của bạn, chỉ cần đặt các nhân vật trong dấu ngoặc kép

char c = 'a'; 
7

Bạn không cần một chức năng để có được giá trị ASCII - chỉ cần chuyển đổi sang một số nguyên bởi một (implicit) dàn diễn viên:

int x = 'A'; // x = 65 
int y = '\t'; // x = 9 

để chuyển đổi một số để hệ thập lục phân hoặc thập phân, bạn có thể sử dụng bất kỳ các thành viên của gia đình printf:

char buffer[32]; // make sure this is big enough! 
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345" 
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039" 

Không có hàm tích hợp để chuyển đổi thành nhị phân; bạn sẽ phải cuộn của riêng bạn.

2

Bạn có thể gây nhầm lẫn với biểu diễn bên trong với đầu ra. Để xem những gì giá trị của một nhân vật có:

char c = 'A'; 
cout << c << " has code " << int(c) << endl; 

Tương tự fo valuwes hex - tất cả các số là số thập lục phân, do đó, nó chỉ là vấn đề đầu ra:

int n = 42; 
cout << n << " in hex is " << hex << n << endl; 

Các "hex" trong báo cáo kết quả đầu ra là một trình xử lý C++. Có thao tác cho hex và thập phân (tháng mười hai), nhưng tiếc là không cho nhị phân.

0

Theo như hex & nhị phân - đó chỉ là biểu diễn các số nguyên. Những gì bạn có thể muốn là một cái gì đó như printf ("% d", n), và printf ("% x", n) - in đầu tiên thập phân, thứ hai phiên bản hex của cùng một số. Làm rõ những gì bạn đang cố gắng làm -

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