问题标签 [octal]

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 投票
3 回答
3661 浏览

python - 使用Python的stat函数高效获取owner、group等权限

问题:

如何有效地使用stat函数来获得有意义的文件权限(用户、组和其他)。

细节:

我正在查询文件权限,如下所示:

这将返回十进制形式的权限。所以如果fooBar.txt有八进制文件权限0700,这里permissions设置为十进制值448。我想要的是为每个权限设置 9 个变量(ownerRead, ownerWright, ownerExecute, groupRead,...)如果我要这样做,我会使用这样的蛮力方法:

有没有更有效的方法来做到这一点而不必转换为八进制,因为这个函数会被调用很多次?

0 投票
2 回答
15875 浏览

ruby - 无效的八进制数错误

Ruby中无效的八进制数字错误,我该如何绕过它?我有一个数字,0962833我需要将其发送到 API,但我无法发送它,因为我收到了这个无效的八进制数字错误。

我需要解决这个问题,而不是把那个数字变成一个字符串,零不能被删除,这是必须的。

0 投票
3 回答
3142 浏览

language-agnostic - 为什么用前导零来表示八进制数?

我一直想知道为什么用前导零 ( 0) 来表示八进制数,而不是——例如—— 0o。的使用0o同样有帮助,但不会像前导0es 那样引起很多问题(例如parseInt('08');在 JavaScript 中)。这种设计选择背后的原因是什么?

0 投票
2 回答
2037 浏览

python - 如何避免以“0”开头的python数字文字被视为八进制?

我正在尝试编写一个小型 Python 2.x API 来支持获取 jobby jobNumber,其中jobNumber以整数形式提供。有时用户会提供一个jobNumber以 0 开头的整数文字,例如037537. (这是因为它们被 R 宠坏了,R 是一种理智地认为 . 的语言037537==37537。)然而,Python 认为以“0”开头的整数文字是八进制,因此037537!=37537,而不是037537==16223。这让我觉得这是对最小意外原则的公然冒犯,幸运的是,这看起来在 Python 3 中已修复——参见PEP 3127

但我现在坚持使用 Python 2.7。所以我的用户这样做:

默默地得到错误的工作(16223),或者这个:

Python 拒绝八进制不兼容的数字。

似乎没有提供任何东西__future__来让我获得 Py3K 行为——它必须以某种方式内置到 Python 中,因为它至少需要对词法分析器进行更改。

有谁知道在这种情况下我可以如何保护我的用户免于得到错误的工作?目前我能想到的最好的方法是更改​​该 API,使其采用字符串而不是 int。

0 投票
3 回答
228 浏览

c++ - 带字符串/八进制的 int lambda 表达式?(C++)

我接受了一项开卷测试,并被告知我可以使用任何我需要的资源来回答这些问题,因为它更像是一项能力测试——一个问题让我非常难过。

这个问题要求编写一个与给定类似的函数 - 我确信我可以做到 - 但我找不到关于该函数正在做什么的太多信息,并且给出一个小样本很难确定正在发生的事情。

问题如下:

程序打印什么?请编写一个等效的 getValue 函数。

程序打印“0”,这是最简单的部分。我很想用一个简单的方法来回答这个问题。但我想更深入地了解 getValue 函数中到底发生了什么。我的主要好奇心是字符串部分在 lambda 表达式方面的作用,因为 \8 不是有效的八进制,但似乎对结果值有一些影响。

不寻找直截了当的答案(据我所知,这就是我使用作业标签的原因),只是朝着正确的方向前进

谢谢您的帮助

0 投票
2 回答
13151 浏览

c - C中字符串内的八进制表示

在给定的程序中:

它显示输出为:

63 55 0
--?-- --7-- ----

我可以理解它将\0 (\077) 之后的前两个字符从八进制转换为十进制,但是任何人都可以解释为什么 2 个字符,为什么不是 1 或 3 或任何其他字符?

请解释这背后的逻辑。

0 投票
0 回答
1292 浏览

math - 用外行的话来说,8 位补码中 6 位八进制的“计算”?

如何在 8 的补码中找到 6 位八进制的正/负范围?据我了解,它只是一半 - 1:

000001 - 377777 positives, 400000 - 77777 negatives

377777 是最大的正数,而 777777 是最大的负数吗?

如果这是正确的,在我看来 377777 和 777777 是相互补充的。但是,根据我的阅读,要找到补码,请从基数中减去数字。这样做,377777 将等于:

7 - 3 = 4

7 - 7 = 0

7 - 7 = 0

7 - 7 = 0

7 - 7 = 0

7 - 7 = 0

= 400000

这表明 400000 是 37777 的补码(在我看来是相反的)。

0 投票
2 回答
1126 浏览

java - 字符串非法转义字符

在回答一个问题时,我遇到了这个有趣的情况。

如果我有如下字符串,Netbeans 不会抱怨它是一个illegal start of expression.

一旦我删除“1”,它就会抱怨它是一个illegal start of expression.

无法弄清楚这种行为的原因。任何输入将不胜感激。

观察:似乎\9\8具有特殊意义。只为\9\8我得到illegal start of expression。它没有抱怨的所有其他组合。

0 投票
1 回答
230 浏览

objective-c - 在objective-c中使用八进制格式的NSLog显示对象

我想以八进制显示文件的权限。下面的代码有效,但仅以十进制显示权限。任何想法如何将结果转换为八进制?%o 没有显示正确的结果。

谢谢

0 投票
3 回答
7748 浏览

php - isHex() 和 isOcta() 函数

我有两个功能。IsOctaisHex。似乎无法使 isHex 正常工作。
isHex() 中的问题是它不能省略原始字符串x23的 'x' 表示法。

原始十六进制字符串也可以是D1CE。所以添加 x 然后比较是行不通的。

isHex 函数是否有任何正确的解决方案。isOcta 也是正确的吗?

这是对函数的调用:

这是函数调用的结果:

===== 完整答案 ====

感谢 Layke 指导测试字符串中是否存在十六进制字符的内置函数。还要感谢 mario 提示使用 ltrim。这两个函数都需要获取 isHexa 或者是要构建的十六进制函数。

--- 编辑功能 --

可能现在,这是对“十六进制”功能的简单证明吗?