问题标签 [internal-representation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bit-manipulation - 不同的计算机如何知道彼此使用了哪种有符号整数表示
不同的计算机如何知道彼此使用了哪种有符号整数表示?
例如,如果我通过网络发送二进制补码方法编码的整数,客户如何知道它是二进制补码方法而不是例如一个补码或有符号幅度?
algorithm - 以 4 为基数表示的多余 (-1)
在过去的几天里,我一直试图解决这个问题,但我无法找到解决它的方法。所以,这里是:
给定以 4 为底(即 0、1、2、3 作为数字的数字),找出任何负整数或正整数的以 4 为底的表示形式中的多余 (-1)。示例:-6 = (-1)22 相反,(-1)22 超过 (-1) 基数 4 = 2 * 4^0 + 2 * 4^1 + (-1) * 4^2 = 2 + 8 - 16 = 10 - 16 = -6 以 10 为底
27 = 2(-1)(-1) 相反,2(-1)(-1) = (-1) * 4^0 + (-1) * 4^1 + 2 * 4^2 = -1 - 4 + 32 = 27
我确实提出了一些正数算法,但没有一个算法适用于所有负数,所以他们就扔进了垃圾箱。
谁能在这里给我一些线索?谢谢!
----------------
编辑:我将尝试以不会引起任何混淆的方式重新表述这个问题。
考虑通过从每个数字中减去 1 获得的基数,称为以 4 为底的余数-(-1)。在这个基数中,任何数字都可以用数字 -1、0、1、2 表示。所以,问题要求一种算法,将任何整数作为输入,并将该给定数字的表示形式作为输出。
例子:
十进制 -6 = -1 2 2 表示基数 4 的余数-(-1)。
为了验证这一点,我们采用 -1 -1 2 的表示并将其转换为十进制数,从最右边的数字开始,并使用通用以 n 为底的 10 算法,如下所示:
数字 = 2 * 4^0 + 2 * 4^1 + (-1) * 4^2 = 2 + 4 - 16 = -6
python - Python numpy.divmod 和整数表示
我试图使用numpy.divmod
非常大的整数,但我注意到一个奇怪的行为。在大约2**63 ~ 1e19
(这应该是int
python 3.5+ 中通常的内存表示的限制)时,会发生这种情况:
不知何故,商和余数可以正常工作,直到2**63
,然后有一些不同的东西。
我的猜测是int
表示是“矢量化的”(即BigInt
在 Scala 中,作为 的小端序Seq
)Long
。但是,作为 的结果,我期望divmod(array, test)
有一对数组:商数组和余数数组。
我对这个功能一无所知。内置 divmod 不会发生这种情况(一切都按预期工作)
为什么会这样?它与int
内部表示有关吗?
详细信息:numpy 版本 1.13.1,python 3.6
r - R如何在内部表示NA?
R 似乎支持NA
浮点数组中的有效值。它在内部如何表示?
我(也许是有缺陷的)理解是现代 CPU 可以在硬件中执行浮点计算,包括有效处理 Inf、-Inf 和 NaN 值。如何NA
适应这一点,如何在不影响性能的情况下实施?
c++ - Result of sizeof for C++ arrays and pointers
On an x86_64 architecture, a pointer is 8 bytes. It makes sense to me that sizeof(x)
should return 8. I understand that a char
is a single byte, and 5 bytes is the size of array z
. What is the intuition behind why sizeof(z)
does not return 8?
vb6 - 如何查看 VB6 Double 变量的实际二进制内容?
我已经搜索了很多,但找不到在 VB6 中获取 Double 变量内容的十六进制或二进制表示的方法。(双变量是否以 IEEE754 格式保存?)
提供的Hex(x)函数不好,因为它首先对输入进行整数化。因此,如果我想查看 Atn(1) 产生的确切位模式,Hex(Atn(1))不会产生它。
我正在尝试构建一个包含 If 子句的数学函数。我希望能够看到这些边界两侧返回的值尽可能接近一致。
有什么建议么?
c++ - “大于 0.0”的控件可以在不同的系统上显示不同的行为吗?
低于 0.0 的双变量控制正常工作。我很好奇使用此功能编译的 exe 在不同系统上的行为是否会有所不同。
我的意思是以下几行在main()
不同系统上的行为是否不同?
c - 我了解到在 C 语言中 char 类型的范围是 -128 到 127,但看起来不是这样
这可能是一个非常基本的问题,但我无法做到。这是我正在使用的。
结果是这样的。
我将值 128 分配给有符号(普通)字符类型,但它没有溢出。
此外,c1 和 c2 似乎都包含 4 个字节,并且 -128 和 128 是相同的值。
我怎样才能理解这些事实?我需要你的帮助。非常感谢。
pointers - Haskell 运行时如何表示惰性值?
我什至不知道如何表达这个问题。A 假设有一个指向非评估表达式的指针。如果它被请求(通过一些强制它的严格函数),那么指针值将被评估的值替换。对?我错了吗?
所以我假设每个指针都有一个标志,说明它是否已被评估。
如果评估是未定义的,比如空列表的头部怎么办?“指针”中存储了什么?
c - 将存储在整数中的浮点数的内部表示转换为实际浮点数
我有float
存储在 a 中的 a 的内部表示uint32_t
。假设我们有两个具有这些条件。我想floats
将由 表示的两者相加uint32_t
,然后将它们的内部表示存储在另一个uint32_t
中。我一直在尝试一些事情,但我不确定是否有一种简单或标准的方法。在我看来,有两个问题:
- 将存储在 中的内部表示转换
uint32_t
为 afloat
(否则我不知道如何对它们求和)。 - 求和后,将生成的
float
内部表示存储在 a 中uint32_t
。
我一直在研究 C 库中的函数,也许它可以用printf
或者atof
但我没有设法解决它。