如何在 Perl 中将十六进制字符串转换为数字?

2024-01-12

我最近编写了一个脚本,它解析单个二进制字节月份字段的文本表示。

(不要问:-{)

在摆弄 sprintf 一段时间后,我放弃了并这样做了;

our %months = qw / x01 1 
       x02 2
       x03 3 
       x04 4 
       x05 5 
       x06 6 
       x07 7 
       x08 8 
       x09 9 
       x0a 10 
       x0b 11 
       x0c 12 /;
...
my $month = $months{$text};

我侥幸逃脱了惩罚,因为我只使用了 12 个数字,但是有更好的方法吗?


如果你有

$hex_string = "0x10";

您可以使用:

$hex_val = hex($hex_string);

你会得到:$hex_val == 16

hex不需要“0x" 在字符串的开头。如果缺少它,它仍然会将十六进制字符串转换为数字。

您还可以使用oct根据前缀将二进制、八进制或十六进制字符串转换为数字:

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

如何在 Perl 中将十六进制字符串转换为数字? 的相关文章

随机推荐

  • 如何删除Windows中的长路径。

    将项目导入 Eclipse 时 它 以某种方式开始创建目录的递归版本 现在 当我尝试删除任何内容时 我收到消息 您指定的文件名太长 我无法从命令 shell 中删除它 我无法从资源管理器中删除它 我不能用它做任何事 我不知道 Eclipse
  • ss 命令显示 TIME_WAIT 而不是 CLOSE_WAIT,这在逻辑上不符合

    我试图理解 TIME WAIT 和 CLOSE WAIT 我已经通过 Chrome 控制台打开了一个套接字连接 该连接连接到本地运行的 Java WebSocket 服务器 然后将其关闭 var webSocket new WebSocke
  • 将gradle临时目录设置为SSD

    我正在使用带有 gradle 的 android studio 当我构建应用程序时 我注意到旋转硬盘工作量很大 所以我查看并看到 gradle 正在将临时文件写入变量定义的目录 在 Windows 8 1 中 TEMP or TMP在我的用
  • 从 Android 上传文件到 wowza

    我已经安装了 wowza 服务器并且能够使用 android 中的视频视图从客户端播放文件 现在我必须录制视频并且必须将文件上传到 wowza 服务器 如何编写服务器端应用程序 以及如何从 android 代码连接它 有人有这方面的经验吗
  • Stripe Connect PaymentIntent 错误:没有这样的 payment_intent

    我在 API 中使用 stripe connect 并且我想更新和处理现有的 paymentIntent 使用NodeJS stripe包创建 paymentIntent 成功 const paymentIntent await strip
  • 在 PyQt 中,如何将项目和所选项目保存在组合框中

    我填充组合框 用户选择其中一个选项 然后他们关闭一切 稍后 用户可能会再次打开窗口 要求他们重新输入并重新选择选项会很乏味 所以我想 加载 它们 我尝试使用 pickle 但显然出现与 Qt 相关的错误 self WordCardsFiel
  • 无法将用户添加到 Hyper-V 管理员组退出代码 2220

    我将 Windows 10 LTSB 与 Visual Studio 2015 结合使用 启用后Hyper V 我安装了独立的Visual Studio Emulator for Android Hyper V 运行良好 因为可以向其中添加
  • 无法获取资源“https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom”

    我最近开始使用 React Native 但是根据伊朗制裁 gradle 无法构建我的第一个项目 所以我使用了 VPN 也舍餐服务 https shecan ir 但我收到以下错误 我阅读了 React Native 说明并按照它们设置了模
  • 如何清空 Drupal 缓存(无需 Devel)

    如何清空 Drupal 缓存 without开发模块 无需在新节点等中运行一些 PHP 语句 无需进入数据库本身 实际上 您如何指示最终用户清除其缓存 当您以管理员身份登录时 显然 并非该网站的每个用户都有权清除缓存 应该有一个页面 管理
  • 将 FontAwesome 5.x 与 PrimeFaces 6.2+ 结合使用

    我正在检查这个问题 如何将 webjars org 中的 Font Awesome 与 JSF 结合使用 https stackoverflow com q 18891768 811293蚂蚁这个问题 FontAwesome 与 Prime
  • 如何在 HTTP 标头中设置 REMOTE_USER?

    我的 Apache 设置有问题 我安装了一个部分接受外部身份验证的 Web 应用程序 我使用 Apache 来管理对我的应用程序网页的访问 如果身份验证成功 环境变量 REMOTE USER 将设置为用户名 然后 用户名通过 HTTP 标头
  • 是否可以在请求中刷新会话?

    我使用创建一个会话requests Session 由于某种原因 服务器端关闭了此连接 所以我必须重新连接 问题是 这个会话在很多地方都使用 所以我想知道是否可以重建 TCP 连接但保留会话对象 以便我仍然可以使用它 Example s r
  • Google javascript API 库 - 日历手表通知

    我正在尝试使用 JS 客户端库订阅日历事件通知 如下所示 gapi client load calendar v3 function var request gapi client calendar events watch calenda
  • 代码契约[Type]实现接口方法{Interface.Method},因此无法添加要求

    我有以下场景 public interface ISomething void DoStuff public class Something ISomething private readonly ISomethingElse someth
  • ValueTypes会导致GC吗?

    如果我有堆栈分配的值类型 什么会清理它们 GC只是堆吧 If这些值位于堆栈上 然后当当前堆栈帧被 弹出 通过返回的方法 时 这些值将被有效地清理 不会调用任何终结器或类似的东西 但内存会用完这些值将在下次堆栈达到那么高时重用 请注意 值类型
  • 使用 PHP 上传到 S3 的 RequestTimeout

    我在从我们的一台服务器上将文件上传到 S3 时遇到问题 我们使用 S3 来存储备份 所有服务器都运行 Ubuntu 8 04 PHP 5 2 4 和 libcurl 7 18 0 每当我尝试上传文件时 亚马逊都会返回 RequestTime
  • 查找近似重复和伪造的图像

    我正在使用感知哈希技术来查找接近重复和完全重复的图像 该代码非常适合查找完全相同的重复图像 然而 找到近似重复和略有修改的图像似乎很困难 由于它们的哈希值之间的差异分数通常类似于完全不同的随机图像的哈希差异 为了解决这个问题 我尝试将几乎重
  • Mysql 选择一列中具有相同值而另一列中具有不同值的行

    如果有人可以验证我的 SQL 查询 我将非常感激 对于以下数据集 MD5 UserPK CategoryPK ADCDE 1 7 ADCDE 1 4 ADCDE 1 7 dffrf 1 7 dffrf 2 7 dffrf 2 6 dffrf
  • 如何将编译器标志传递给 Rust 中的子包? [复制]

    这个问题在这里已经有答案了 我有板条箱A and B A依赖于取决于B and B有一个名为some feature 我可以建造B通过运行使用货物cargo build features some feature 但是我如何为A我可以选择启
  • 如何在 Perl 中将十六进制字符串转换为数字?

    我最近编写了一个脚本 它解析单个二进制字节月份字段的文本表示 不要问 在摆弄 sprintf 一段时间后 我放弃了并这样做了 our months qw x01 1 x02 2 x03 3 x04 4 x05 5 x06 6 x07 7 x