问题标签 [data-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.

0 投票
4 回答
408 浏览

c++ - const_cast 是否会导致实际的代码发射?

const_cast是否只是告诉编译器“停止抱怨,将其视为非常量指针”的一种方式?是否存在将const_cast本身翻译成实际机器代码的情况?

0 投票
24 回答
452234 浏览

binary - 什么是“2的补码”?

我正在学习计算机系统课程,并且一直在努力学习Two's Complement。我想理解它,但我读过的所有内容并没有为我带来图片。我已经阅读了维基百科文章和其他各种文章,包括我的教科书

因此,我想开始这个社区 wiki帖子来定义什么是二进制补码,如何使用它以及它如何在强制转换(从有符号到无符号,反之亦然)、按位运算和位移运算等操作期间影响数字.

我希望的是一个清晰简洁的定义,程序员很容易理解。

0 投票
2 回答
567 浏览

list - 哪种数据结构最能代表这些数据?

替代文字

这是列表列表还是只是一堆树(森林)?

0 投票
6 回答
3912 浏览

c - 在 C 中表示动态类型

我正在编写一种动态类型的语言。目前,我的对象以这种方式表示:

目标是我应该能够将所有内容作为 a 传递struct Object*,然后通过比较class属性来发现对象的类型。例如,要转换一个整数以供使用,我只需执行以下操作(假设它integer的类型为struct Class*):

问题是,据我所知,C 标准没有承诺如何存储结构。在我的平台上,这有效。但是在另一个平台上struct String可能会存储value之前class和当我foo->class在上面访问时,我实际上会访问foo->value,这显然很糟糕。可移植性是这里的一个大目标。

这种方法有替代方案:

这里的问题是联合使用的空间与可以存储在联合中的最大事物的大小一样多。鉴于我的某些类型比其他类型大很多倍,这意味着我的小类型 ( int) 将占用与我的大类型 ( map) 一样多的空间,这是一个不可接受的权衡。

这会产生一定程度的重定向,从而减慢速度。速度是这里的目标。

最后一种选择是传递void*s 并自己管理结构的内部。例如,要实现上面提到的类型测试:

这给了我想要的一切(便携性、不同类型的不同尺寸等),但至少有两个缺点:

  1. 丑陋,容易出错 C. 上面的代码只计算了单个成员的偏移量;对于比整数更复杂的类型,情况会变得更糟。我也许可以使用宏来缓解这个问题,但无论如何这都会很痛苦。
  2. 由于没有struct代表对象,我没有堆栈分配的选项(至少没有在堆上实现我自己的堆栈)。

基本上,我的问题是,我怎样才能在不付钱的情况下得到我想要的东西?有没有一种方法可以移植,不同类型的大小有差异,不使用重定向,并保持我的代码漂亮?

编辑:这是我收到的关于 SO 问题的最佳回复。选择答案很困难。所以只允许我选择一个答案,所以我选择了一个能引导我找到解决方案的答案,但你们都收到了赞成票。

0 投票
4 回答
448 浏览

data-structures - 看起来像保龄球瓶的数据结构的名称是什么?

首先,对不起标题。有人请提出一个更好的,我真的不知道如何正确表达我的问题。

基本上,我只是在寻找元素看起来像这样的数据结构的名称(忽略点):

......5

....3...2

..4...1...6

9...2...3...1

我首先认为它可能是某种“树”,但是,正如维基百科所说:

树是 [...] 一个非循环连通图,其中每个节点有零个或多个子节点,最多有一个父节点

由于在我正在寻找的数据结构中可以有多个父节点,它可能不是一棵树。

所以,这是我的问题:

可以用元素之间的以下链接表示数据的数据结构的名称是什么?(/ 和 \ 是链接,再次忽略点):

......5

...../..\

....3...2

.../..\./..\

..4...1...6

../.\./..\./..\

9...2...3...1

0 投票
1 回答
776 浏览

algorithm - 集合的视觉表示

我有一些实验数据,我决定将它们表示为集合。

假设有一个名为E={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s} 的主集(蓝色圆圈)和几个子集B红色虚线椭圆),其中包含来自主集E的元素。

我需要在主集E中表示这些子集并显示它们的交集,或多或少类似于下图。

这就是为什么我需要一些算法(带有示例)来绘制该图。最好使用 PHP 或 Javascript(使用 SVG 规范),因为我将在 Web 应用程序中实现这个问题。

集合覆盖问题的图形表示

预先感谢您!

0 投票
1 回答
66 浏览

sql - 一个特定的数据库设计问题

我当前的数据库由以下表格组成。

存储用户对给定问题的评分 -

存储问题及其 id -

存储问题之间的关系 -

每个问题至少与另一个问题相关;例如,question1 和 question2 可能相关,因为 question1 的平均评分预计会高于 question2 的平均评分。这种关系将存储在“相关”表中

插入相关(qid、related_qid、relation)值(1、2、gt)
,其中“gt”表示“大于”。

问题是对关系进行编码似乎一点也不优雅。有没有人有更好的解决方案?

0 投票
3 回答
2881 浏览

sql - 将一副纸牌存储在数据库中的最佳方法是什么?

我正在开发一个需要在数据库中存储一副手牌的应用程序。我不确定在数据库中表示它的最佳方式是什么。

该套牌将被应用程序预先分配给 4 手,每手持有 13 张牌。之后我需要存储手和其他数据,如西装分布等......

最好为每手牌创建一个单独的行并将其与一副牌相关联吗?或者将它们排成一排会更好吗?

另外我不确定是否应该将它们保留为文本或数字。这是一个例子:

或者

有任何想法吗?

PS:存卡是有原因的。我们需要分析手牌分布、高牌点等...

0 投票
5 回答
10306 浏览

c - 什么是二进制数据?

GCC 4.6.0

二进制数据是什么样的?都是1和0吗。

我只是想知道,因为我正在和另一个程序员谈论复制字符串和二进制数据。

通常,我使用 strcpy/strncpy 函数来复制字符串和 memcpy/memmove 来复制二进制数据。但是,我只是想知道它看起来像什么?

非常感谢您的任何建议,

0 投票
1 回答
2117 浏览

types - 浮点和整数的Erlang二进制表示,差异?

得到另一个 Erlang 二进制表示查询('因为这就是我这些天正在阅读的内容,并且需要二进制协议实现)。

如果我正确理解类型说明符,那么对于“浮点”类型值,8 字节表示似乎很好(这是在 64 位 Win7 上)。

然而让我难过的是“整数”类型值的二进制表示。

为什么所有这些都用 1 个字节表示?有人可以解释一下吗?