微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

(〜0L)是什么意思?

我正在做一些X11 Ctypes编码,我不知道C但需要一些帮助来理解这一点.

在下面的C代码(可能是C不知道),我们看到(〜0L)这是什么意思?在Javascript和Python中〜0表示-1.

812   int result = GetProperty(window,property_name,813                            (~0L),// (all of them)
814                            &type,&format,&num_items,&properties);

谢谢

解决方法

0L是一个长整数值,所有位都设置为零 – 通常是0的定义.〜表示反转所有位,这将使您具有一个长整型,所有位都设置为1.

在二进制补码算法(几乎是通用的)中,所有位设置为1的带符号值为-1.

使用〜0L而不是-1L的原因是更清楚的意图 – 它不意味着被用作一个数字,而是一个位的集合.

原文地址:https://www.jb51.cc/c/113256.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐