将 int 转换为 char C 公式

标签 c char int modulo

int num = 65537;
char p = (char)num; //char = 1;

这是怎么回事? 是不是p=num%(127+128)-1p=num%256 或其他什么? 我需要知道为什么 p 等于 1。 谢谢!

最佳答案

因为 65537 在二进制中是 00000000 00000001 00000000 00000001,但是 char 类型只有 1 个字节,最后一个字节被认为是 char 值,即 00000001 = 1

关于将 int 转换为 char C 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27077081/

相关文章:

c++ - 通过 Gnuplot 的管道接口(interface)从 C/C++ 可视化

c - 在struct中使用__attribute__((aligned())),为什么sizeof的结果是这样?

c++ - 为什么 0x82 比 0x80 小?

java - char 文字 '\"' 与 '"' 相同吗?(反斜杠双引号与仅双引号)

复制 Char * 数组会损坏数据

java - 尝试创建机会计算器

php - PHP中简单数字的float到int改变值

c - 运行时错误和语法错误之间的区别

c - 如何在 C 中将实时音频数据(更新缓冲区)呈现为音频文件

C 的格式说明符