0
yhtomitsyvence
Trả lời 8 năm trước trên
Trả lờiUpvote
Tôi đồng ý rằng phương pháp truyền ký tự mà bạn đã mô tả
ở trên. Tuy nhiên, vấn đề với nó là nó không chuyển giá trị
thực của số nguyên, là 5, sang ký tự. Thay vào đó, những gì nó làm là
chuyển ký tự ascii tương đương với giá trị của số nguyên sang biến ký tự
.
Ví dụ: tôi muốn bạn tải mã này lên
bảng mạch arduino của bạn và mở màn hình nối tiếp và xem giá trị đã được
thông qua .
thiết lập vô hiệu []
{
nối tiếp. begin[9600];//cài đặt tốc độ truyền thông
inti=10;
char c=char[i];
nối tiếp. print["Số nguyên i = \t"];
nối tiếp. println[i];//hiển thị giá trị của số nguyên i
nối tiếp. print["Ký tự c = \t"];
nối tiếp. println[c];//hiển thị giá trị của ký tự c
}
vòng lặp vô hiệu []
{
}
Bạn sẽ nhận thấy rằng không có giá trị nào của c được hiển thị. Điều này là do
ký tự ascii tương đương với 10 là một hành động điều khiển [xóa lùi]. Bạn sẽ nhận được
các kết quả tương tự nếu cố gắng chuyển đổi các giá trị số nguyên nằm trong khoảng từ 0 đến 31 vì chúng
là các hành động điều khiển và cũng là giá trị 32[dấu cách] và giá trị . Bạn có thể
xác nhận từ bảng Ascii bên dưới.
http. //www. áo choàng. com/smugbook/ascii. html">http. //www. áo choàng. com/smugbook/ascii. html
Bây giờ, hãy thay đổi giá trị của int i thành bất kỳ giá trị nào nằm trong khoảng từ 33 đến 126
và khi bạn chạy chương trình, giá trị của ký tự Ascii tương đương với giá trị của int .
be displayed in the serial.
Ví dụ: nếu bạn sử dụng int i=123;
ký tự tương đương sẽ là x.
Ký tự có thể hoạt động như một số nguyên bình thường trong các thao tác vì
ký tự sẽ sử dụng giá trị tương đương hex của x là 123; . Do đó, bạn sẽ có thể làm điều gì đó như i+c mà vẫn
character ‘x’. Therefore, you will be able to do something like i+c and still
nhận được câu trả lời số nguyên chính xác 126.
Tuy nhiên, kiểu truyền này tôi. e. char
c=[char]i; . Việc chuyển đổi bất kỳ số nguyên nào trên
that are between and inclusive of 0 and 127. Conversion of any integer above
giá trị 127 bằng phương pháp này sẽ gây ra lỗi trong thao tác và
so sánh. Vì lý do này nên sử dụng phương pháp tôi đã mô tả
ở trên, vì phương pháp này có thể xử lý bất kỳ kích thước nào của số nguyên và truyền giá trị thực
.
Tôi sẽ cập nhật toàn bộ hướng dẫn trên http. //www. hack arduino. com/converting-integer-to-character-vice-versa/
sau một giờ hoặc lâu hơn, để cho bạn thấy ý của tôi.
Kiểu dữ liệu char được biểu diễn dưới dạng giá trị ascii trong lập trình c. Các giá trị Ascii là các giá trị số nguyên nếu chúng ta thêm '0' thì chúng ta sẽ nhận được ASCII của chữ số nguyên đó có thể được gán cho một biến char. Sau đó, nếu chúng tôi truy cập char đó bằng %c, chúng tôi có thể in nó
Nếu chúng ta muốn chuyển đổi một số thì chúng ta phải trích xuất chữ số đó và sau đó chúng ta phải chuyển đổi nó thành một mảng ký tự
Hãy xem ví dụ dưới đây để chuyển đổi một int thành một giá trị ký tự
Ví dụ
#include
int main[]
{
int a=1;
char c=a+'0';
printf["Converted character is %c",c];
}
Trong ví dụ trên, một chữ số int được chuyển thành kiểu char
Biến
g8 được gán giá trị 1
Biến
g8 được chuyển thành kiểu char bằng cách thêm
g0 và gán cho biến kiểu char
g1
Chương trình C để chuyển đổi Int sang Char
Cải thiện bài viết
Lưu bài viết
Thích bài viết
- Cập nhật lần cuối. 05 tháng 8 năm 2022
Cải thiện bài viết
Lưu bài viết
Để chuyển đổi int thành char trong ngôn ngữ C, chúng tôi sẽ sử dụng 2 cách tiếp cận sau
- sử dụng đánh máy
- Sử dụng sprintf[]
Ví dụ
Input: N = 65 Output: A
1. Sử dụng Typecasting
Phương pháp 1
- Khai báo và khởi tạo. Để bắt đầu, chúng ta sẽ khai báo và khởi tạo số nguyên của mình với giá trị được chuyển đổi
- đánh máy. Nó là một kỹ thuật để chuyển đổi một kiểu dữ liệu sang một kiểu dữ liệu khác. Chúng tôi đang nhập số nguyên N và lưu giá trị của nó trong biến kiểu dữ liệu char c
- In ký tự. Cuối cùng, in ký tự bằng print
Ví dụ
C
g2
g3
g4
g5
g6
g0
g1
g2
g3____20
g5
g3______27____28
g9
Input: N = 65 Output: A20
Input: N = 65 Output: A21
Input: N = 65 Output: A22
g3____124
Input: N = 65 Output: A25
Input: N = 65 Output: A26
Đầu ra
g
Phương pháp 2
- Khai báo và khởi tạo. Để bắt đầu, chúng ta sẽ khai báo và khởi tạo số nguyên của mình với giá trị được chuyển đổi
- đánh máy. Khai báo một biến khác là ký tự c và gán giá trị của N cho C
- In ký tự. Cuối cùng, in ký tự bằng printf
Ví dụ
C
Input: N = 65 Output: A27
Input: N = 65 Output: A28
g5
g6
g0
g1
g2
g3______20
g76
g3____121
g79
g3____27____28
g9
Input: N = 65 Output: A24
g3____124
Input: N = 65 Output: A25
Input: N = 65 Output: A26
Đầu ra
Input: N = 65 Output: A2
2. Sử dụng sprintf[]
Phân bổ không gian cho một biến int sẽ được chuyển đổi thành bộ đệm char
Ví dụ
C
Input: N = 65 Output: A27
g20
g5
g0
g1
g2
g3
g0
g27
g3____121
g30
g3____832____833
g9
g35
g3____27____28
g39
Input: N = 65 Output: A24
g3____124
Input: N = 65 Output: A25
Input: N = 65 Output: A26
Đầu ra
g7
Phương pháp. Chuyển đổi từ int sang char bằng cách thêm 0
C
g5
g6
g0
g1
g2
g3______20
g76
g3____121
g55
g3____27____28
g9
Input: N = 65 Output: A24
g3____124
Input: N = 65 Output: A25
Input: N = 65 Output: A26
Đầu ra
Input: N = 65 Output: A2
Ghi chú cá nhân của tôi arrow_drop_up
Tiết kiệm