美文网首页
%02x 陷阱

%02x 陷阱

作者: 超级无敌帅气小飞侠 | 来源:发表于2020-06-12 20:21 被阅读0次

下面如果用 0x7f 则不会有6个 f 前缀,用 0x8f 则有这个问题。
事实上 0x8f 最高位是1,所以 int8_t 类型会将它当成负数,%x会将其补为 int,高位补1,就看到一串 f;而在 uint8_t 或 long 的世界里是正数。

NSLog(@"%02x", 0x8f);                   // output: 8f
NSLog(@"%02x", (char)0x8f);          // output: ffffff8f
NSLog(@"%02x", (int8_t)0x8f);         // output: ffffff8f
NSLog(@"%02x", (uint8_t)0x8f);       // output: 8f
NSLog(@"%02llx", (long long)0x8f);  // output: 8f

%02x 不代表只输出两位,而是至少输出两位。

参考文档:
https://stackoverflow.com/a/18438992/1107242

相关文章

  • %02x 陷阱

    下面如果用 0x7f 则不会有6个 f 前缀,用 0x8f 则有这个问题。事实上 0x8f 最高位是1,所以 in...

  • Android 零碎知识点

    Java byte数组转hex 重要代码:String.format("%02x", b&0xff) Jetpac...

  • Python 16进制字节数组转字符串

    bytes_object=[0xAA,0xAB,0x11] w="".join("%02x"%bforbinbyt...

  • char型字符 0x90 使用 %02x 不是 90

    char型字符 0x90 使用 %02x 是 ffffff90,原因是 char 型字符最大值是 0x7f,不能表...

  • C语言关于char类型%02X的输出问题分析

    C语言关于char类型%02X的输出问题分析 1 问题描述 在与加密机进行交互的时候,原程序从AIX系统迁移到LI...

  • 孟岩老师对区块链问题的解答之:第二问

    很多区块链项目的“通证经济系统”90%以上都会跌倒在代币陷阱、央行陷阱、黑箱陷阱、乌托邦陷阱、赌场陷阱、通缩陷阱、...

  • 【读书】解码青春期

    父母容易陷入的四种常见陷阱: 第一种陷阱:舒适陷阱。第二种陷阱:认可陷阱。第三种陷阱:控制陷阱。第四种:成就陷阱。...

  • 绕口令

    仙境里有陷阱 陷阱里没有仙境 仙境里的陷阱不是陷阱里的仙境 分不清是仙境还是陷阱

  • iOS实现MD5加密

    获得MD5加密 值得注意的是: 其中%02x是格式控制符:‘x’表示以16进制输出,‘02’表示不足两位,前面补0...

  • 你能听懂别人没说出来的意思吗?

    我觉得,在生活中,存在着各种各样的陷阱,网络陷阱、诈骗电话陷阱、消费陷阱等,甚至连有些言语也是陷阱…之所以这些陷阱...

网友评论

      本文标题:%02x 陷阱

      本文链接:https://www.haomeiwen.com/subject/qsintktx.html