C 中的波形符运算符

2023-12-02

我见过 ELF 哈希算法中使用的波形符运算符,我很好奇它的作用。 (代码是来自永远的迷茫.)

unsigned elf_hash ( void *key, int len )
{
  unsigned char *p = key;
  unsigned h = 0, g;
  int i;

  for ( i = 0; i < len; i++ ) {
    h = ( h << 4 ) + p[i];
    g = h & 0xf0000000L;

    if ( g != 0 )
      h ^= g >> 24;

    h &= ~g;
  }

  return h;
}

The ~运算符是按位NOT,它反转二进制数中的位:

NOT 011100
  = 100011
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 中的波形符运算符 的相关文章

随机推荐

  • 为什么 android studio 无法识别 .wav / .mp3 文件

    我正在尝试向我的项目添加声音 但 android studio 无法识别这些文件 该文件前面有一个问号图标 如果我播放该项目 则会出现以下屏幕 有办法解决这个问题吗 选择 存档 选项并确保文件名语法正确 仅小写 a z 0 9 或下划线
  • Xpages浏览器错误

    我有以下错误 Error 403 HTTP Web Server You are forbidden to perform this operation 我在本地安装了这个应用程序 客户端和浏览器都运行良好 但是 当我在服务器上创建副本 我
  • 根据部分名称查找文件夹

    我有工作表来生成电子邮件 在 Outlook 上 考虑用户插入的参数 我有代码可以编写表格并将其包含到电子邮件正文中 我需要包含 PDF 附件 这些文件位于名称始终为的目录中 一个数字 在纸上 一个随机字符串 示例 某人请求号码为 340
  • 在 Emberjs 中使用不同模型从一条路线过渡到另一条路线

    我有一个搜索页面 我们可以在其中获得不同类型的搜索结果 在我想使用的搜索结果列表中 linkTo someResources someResource result result Name linkTo 并且在路线上someResource
  • Oracle:将数字转换为英语以外的其他语言的单词

    我正在尝试将数字转换为文字 select to char to date number j jsp from dual SELECT TO CHAR TO DATE 24834 j jsp FROM DUAL Output twenty f
  • 在 Swift 中读取文本文件

    我正在尝试从程序中读取一个文本文件 该文件是 var name String stringWithContentsOfFile test txt encoding NSUTF8StringEncoding error nil 其中text
  • matplotlib 中纵横比相等的图形坐标不一致

    我正在准备一张带有从一个到另一个的子图和箭头的图 此处已解决 在 Matplotlib 中绘制两个图之间的线 在我的图中 子图都具有相同的纵横比 这似乎扰乱了从数据坐标到图形坐标的转换 因此我创建的 Line2D 对象没有到达我想要的位置
  • 使用 scanf 读取带空格的字符串? [复制]

    这个问题在这里已经有答案了 我希望以下内容要求输入 然后接受一个字符串 带空格 然后再次执行 但在输入第一个字符串后它会重复输出 input char command 80 while 1 printf input scanf n comm
  • 基于其他文本列将数字列添加到 pandas 数据框[重复]

    这个问题在这里已经有答案了 我有这个数据框 df pd DataFrame 137 earn 158 earn 144 ship 111 trade 132 trade columns value topic print df value
  • 将 MFC 中的大型项目从 Visual C++ 6.0 迁移到 Visual Studio 2005

    我正在 Visual C 6 0 中维护一个大项目 250k loc 不包括从 idl 生成的代码 该项目使用 Visibroker 简称 VB 5 2 1 这是 Borland 的 CORBA 实现 最近 与我的项目通信的另一个模块升级到
  • 如何使用tabletop.js向传单地图添加标记?

    我正在使用这个非常好的指南将标记从 Google 工作表添加到基本的 leaflet js 地图 https rdrn me leaflet maps google sheets 问题是 在这里使用这些代码片段 我得到了控制台中记录和返回的
  • Powershell 如何知道在哪里可以找到要导入的模块?

    对于使用命令行开关和 powershell 的东西 我确实处于初学者水平 我使用 PowerShell API 从 C 调用 commandlet 我看到了奇怪的行为 在 stackoverfow 上的不同线程上 人们使用 Import C
  • SQL 查询返回笛卡尔积

    我有一些表 Employee id name id suc id dep id sec Suc id suc name Dep id dep id suc name Sec id sec id dep id suc name 不要责怪我 这
  • PHP 基础知识 - PHP 使用的 MySQL 密码存储在哪里

    我是网络开发新手 我正在学习 PHP 以便出售一些二进制文件 共享 Linux 主机 该网站尚未上线 我的php脚本 50 借用代码 50 自写 95 完全理解 登录MySQL来读取待售物品 并将销售交易数据写入另一个表中 Function
  • 如何检查服务器使用的 EL 版本

    我如何检查服务器使用的 EL 版本是什么 我正在运行 Websphere 7 EL 类位于 j2ee jar 中 清单如下 Manifest Version 1 0 Ant Version Apache Ant 1 6 5 Created
  • Java:将图像移向鼠标位置

    这是鲍勃 我已经知道如何让他rotate由于这个问题 朝向鼠标位置 https stackoverflow com posts 26607930 edit 我一切正常 但仍然无法做到move按下按键时他朝向鼠标位置 这是一个例子 impor
  • 可变长度霍夫曼码的比特流 - 如何写入文件?

    我正在用 C 语言开发霍夫曼编码 解码项目 并且很好地了解算法应如何存储有关霍夫曼树的信息 在解码期间重新构建树 以及使用可变长度代码解压缩到原始输入文件 当写入我的压缩文件时 我将输出一个包含唯一频率的 256 个 4 字节整数的表 并且
  • Linux下跨进程共享数据

    在我的应用程序中 我有一个进程分叉一个子进程 例如 child1 并且该子进程在磁盘上写入一个巨大的二进制文件并退出 然后 父进程派生出另一个子进程 child2 该子进程读取这个巨大的文件以进行进一步的处理 文件转储和重新加载使我的应用程
  • ObservableCollection 和 Item PropertyChanged

    我看过很多关于这个问题的讨论 但也许我只是一个新手 无法理解它 如果我有一个可观察的集合 它是 PersonNames 的集合 如 msdn 示例中所示 http msdn microsoft com en us library ms748
  • C 中的波形符运算符

    我见过 ELF 哈希算法中使用的波形符运算符 我很好奇它的作用 代码是来自永远的迷茫 unsigned elf hash void key int len unsigned char p key unsigned h 0 g int i f