按位求补运算符

2024-02-21

你们能解释一下下面的程序吗

int main() 
{   
 int max = ~0; 
 printf("%d\n",max);    
 return 0; 
}

AFAIK〜会翻转位。在这种情况下,即 ~0 会将所有位设置为 1。因此 max 变量应包含 MAX 值,但我得到的 o/p 为 -1。那么这里的任何人都可以告诉我为什么我的o/p 为-1。


为什么你期望获得“最大值”?在 2 的补码符号表示中,全 1 位模式代表-1。事情就是这样。

2 的补码有符号表示形式中的最大值表示为01111...1位模式(即第一位是0)。你得到的是1111...1,这显然是负数,因为第一个位 - 符号位 - 是1.

如果您想要一个补零产生“最大值”的示例,请使用unsigned表示

int main() {   
  unsigned max = ~0u; 
  printf("%u\n", max);    
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按位求补运算符 的相关文章

随机推荐

  • msiexec.exe - 嵌入

    我正在使用基于云的 EDR 平台来监控客户端受感染网络上发生的进程 我最近经常看到的是使用选项 Embedding 调用 msiexec exe C Windows System32 MsiExec exe Embedding 35507F
  • 当连续输入错误时,循环中断java

    当您连续两次输入随机值 例如 i 时 程序将终止 我希望 无效数据 请重试 和 您想再玩一次吗 不断重复 直到输入 N 或 Y 7 8 5 No numbers match Do you want to play again i Inval
  • 除法不返回我期望的十进制值[重复]

    这个问题在这里已经有答案了 可能的重复 这个部门有什么问题吗 https stackoverflow com questions 704702 whats wrong with this division 如果你分2 3 它应该返回0 66
  • 适用于 OSX 和 Windows 应用程序的 Eclipse info.plist 文件

    当我寻找隐藏 Java 应用程序停靠图标的方法时 我到处都看到info plist 文件这个 and info plist 文件表示 但我没有看到一个 我的问题是如何在 eclipse 中生成 info plist 文件 它属于哪里 当我导
  • 如何在 iPhone 的导航栏中添加右栏按钮

    我想在导航栏中添加一个右栏按钮项目 以便单击时执行某些功能 我创建了以下代码来添加右侧栏按钮项目 但完成后 栏按钮项目没有显示在导航栏中 void viewDidload self navigationItem rightBarButton
  • 从文件夹中的图像序列获取 numpy 数组

    我有一个文件夹 比如说video1一堆按顺序排列的图像frame 00 png frame 01 png 我想要的是格式为 4D numpy 数组 number of frames w h 3 这就是我所做的 但我认为它很慢 有没有更快或更
  • 在哪里可以找到图形命令 shell?

    终端和 shell 非常强大 但学习起来可能很复杂 尤其是要充分利用它们 有谁知道有一个更加基于 GUI 的命令 shell 可以帮助用户或以更友好的方式显示答案 我知道 IPython 但即使它的语法也有点复杂 尽管这是朝着正确方向迈出的
  • 将片段从 GraphQL 文件导入到另一个 GraphQL 文件不起作用

    我正在尝试使用 graphql 文件并传递变量来对空手道进行测试 在我的 graphql 模式上 我试图重用另一个 graphql 文件中的片段 我尝试按照以下说明进行操作https www apollographql com docs r
  • 为什么GetType成功时FindType却获取不到RTTI?

    我正在尝试使用来抓住一个物体TRttiContext FindType QualifiedTypeName 这是我所得到的 program MissingRTTI APPTYPE CONSOLE uses System SysUtils R
  • 我无法让 super() 在 python 2.7 中工作

    通过一对简单的课程 我无法获得超级工作 class A object q foo class B A q bar def init self self a super A self q a B 像这样的错误 AttributeError T
  • Play框架2.4:NoClassDefFoundError:play/api/cache/CachePlugin

    在尝试从 Play 2 2 更新到 Play 2 4 时 我遇到了这个绊脚石 我还添加了 memcached2 插件 但已禁用 我的conf文件 Cache configuration To avoid conflict with play
  • 在 Socket.IO 客户端断开连接时释放事件处理程序

    我正在使用 Socket IO 如本示例所示 io sockets on connection function socket myService on myevent function socket emit myevent some s
  • Spyder - python - 安装外部包

    我刚刚开始使用 python 在 Windows 中 64 位 我有一个关于如何在 anaconda spyder 环境中安装外部包的基本问题 据我所知 对于大多数软件包 可以简单地使用 conda install bunnys 但是 某些
  • 检查tomcat是否运行? [复制]

    这个问题在这里已经有答案了 可能的重复 Tomcat 正在运行吗 https stackoverflow com questions 3944157 is tomcat running hi 我在虚拟机中安装了tomcat服务器 我想每天检
  • Python Tensorflow - 多次运行 model.fit 而不重新实例化模型

    背景 我正在看一个热门 YouTube 速成课程 https youtu be tPYj3fFJGjk t 12950关于机器学习 At 3 35 50 https youtu be tPYj3fFJGjk t 12950 他提到该模型可能
  • 在 awk 中打印其余字段

    假设我们有这个数据文件 john 32 maketing executive jack 41 chief technical officer jim 27 developer dela 33 assistant risk managemen
  • Windows 工作组上的 Microsoft 服务总线

    我刚刚开始使用 Microsoft Service Bus 现在 我个人面临的挑战是 我是在下班后 在自己的时间等进行此操作 这意味着我正在使用虚拟机和非域电脑 这些人都是工作组 我取得了相当大的成功 特别是在我偶然发现这个链接之后 Mic
  • 启动屏幕等待线程完成

    我仍然遇到闪屏问题 我不想使用该房产SC TopMost true 现在我的应用场景如下 在程序 cs中 STAThread static void Main new SplashScreen tempAL where tempAL is
  • 如何在具有最终字段的抽象类上使用 Lombok @SuperBuilder

    给定以下带有 Lombok 注释的类 Data and SuperBuilder Data SuperBuilder public abstract class Parent protected final String userId pr
  • 按位求补运算符

    你们能解释一下下面的程序吗 int main int max 0 printf d n max return 0 AFAIK 会翻转位 在这种情况下 即 0 会将所有位设置为 1 因此 max 变量应包含 MAX 值 但我得到的 o p 为