【问题标题】:How strings and numbers are stored in memory?字符串和数字是如何存储在内存中的?
【发布时间】:2021-03-23 10:36:13
【问题描述】:

众所周知,字符串和数字都以二进制形式存储。

  • 字符串:

存储为 ASSCI 或 Unicode,将字符串转换为二进制,例如。字母 A 是 65 或 01000001

  • 数字:

存储为 Int 或浮点数

字母A和数字65在二进制中是一样的,那么如何区分呢?我搜索了很多,但没有任何帮助。

【问题讨论】:

  • 你想在需要区分它们的地方做什么?可以分享一下吗?
  • 这似乎不是一个实际的编程问题,答案可能因实现而异。一些基础知识可以在this post找到。
  • 您甚至无法在 JavaScript 中获取原始内存值。您必须使用外部工具检查应用程序。我不是那里的专家,但至少 Cheat Engine(实际上,更多的是内存扫描器和反编译器)可以区分内存值是字符串、整数、浮点数还是双精度数。因此,无论您实际上是在检查这些,应该可以仅从内存信息中确定数据类型。

标签: javascript string


【解决方案1】:

字母A和数字65在二进制中是一样的,那么如何区分呢?

你不能*。如果您使用“系统”语言(C、Rust 等)进行编程,您应该知道在特定地址下存储什么样的值。如果你使用脚本语言,那么有一个底层的 C 实现,它知道什么在哪里。

【讨论】:

  • tks 这对我很有帮助
猜你喜欢
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 2022-10-16
  • 1970-01-01
  • 2014-01-10
相关资源
最近更新 更多