c++ - turbo c 中的二进制表示

标签 c++ c turbo-c

我有一个非常基本的查询。 对于以下代码:

int i = -1;
unsigned int j = (unsigned int) i;
printf("%d",j); // I get 65535 the int limit in turbo C 16 bit compiler

它不应该简单地去掉负号还是绕过限制?

最佳答案

最常用于表示负数的方案称为 Two's Complement .在此方案中,-1 具有所有 1 位的位模式:1111 1111 1111 1111。当被解释为一个无符号整数时,这就是你的 Actor 的意思,那就是 65535。

换句话说,它确实“简单地删除了负号”,只不过这样做的效果与您预期的不同。

关于c++ - turbo c 中的二进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20026442/

相关文章:

python - QML 兼容多线程/异步调用吗?

c++ - 需要一个非常简单的示例,用于用 C 或 C++ 解析和编写 XML 文档

c - 组织具有大量静态函数的 C 程序

c++ - 我可以在 VS2010 中将一个类导入到 ClassWizard 中吗?

c++ - 一维数组元素的最近邻操作

c++ - 为有经验的 C 程序员理解 C++ 语法

c - 在调用函数后定义变量给我一个编译错误

c - 如何在 DOS/C 中访问非标准 COM 端口(USB->Serial,COM5+)?

c - Turbo C 阵列问题

c++ - libusb中断传输