繁体   English   中英

在C中将int转换为unsigned char

[英]Converting an int to an unsigned char in C

以前我从来不需要使用无符号字符,但是最近我对它们存储整数的能力感到好奇。 通过一些阅读,我发现隐式完成了从int到unsigned char的转换,但是我也明确添加了转换。 无论哪种方式,下面的代码都无法工作,并且会打印出等效的字母或一个小的空白框。

printf("%s", "Number: ");
int input;
scanf("%d", &input);  
unsigned char num = input;
printf("%c%s%d", num, " = ", input);
return (EXIT_SUCCESS);

您正在将数字打印为字符%c )而不是整数%hhu )。

printf%c表示打印其代码为相应参数的字符符号。

要打印数值,请改用%d

因为您设置了printf()以将num的值作为字符"%c"进行打印,所以它会打印一个字母。 例如,如果使用"%d" ,则可以打印其数值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM