标签: octal

Scala 2.10 - 八进制转义已被弃用 - 现在如何习惯性地执行八进制转换?

请参阅 https://issues.scala-lang.org/browse/SI-5205https://github.com/scala/scala-dist/pull/20

从scala中弃用了八进制转义值前导0,我没有看到惯用的替代方法.

你现在如何处理scala 2.10中的octals?

编辑 - unix权限是八进制

scala idiomatic octal scala-2.10

14
推荐指数
2
解决办法
3899
查看次数

为什么前导零用于表示八进制数?

我一直想知道为什么前导零(0)用于表示八进制数,而不是 - 例如 - 0o.使用0o会同样有用,但不会导致与导致0es 一样多的问题(例如parseInt('08');在JavaScript中).这个设计选择背后的原因是什么?

language-agnostic history octal

13
推荐指数
1
解决办法
2108
查看次数

为什么在严格模式下不允许使用八进制数字文字(什么是变通方法?)

为什么在JavaScript严格模式下不允许使用八进制数字文字?有什么危害?

"use strict";
var x = 010; //Uncaught SyntaxError: Octal literals are not allowed in strict mode.
Run Code Online (Sandbox Code Playgroud)
<h1>Check browser console for errors</h1>
Run Code Online (Sandbox Code Playgroud)

如果开发人员需要使用Octals(可能会错误地更改数字含义),是否有解决方法?

javascript octal ecmascript-5 strict-mode

13
推荐指数
4
解决办法
2万
查看次数

基数值太大(错误标记为"0925")

我的bash脚本中有以下逻辑:

#!/bin/bash
local_time=$(date +%H%M)

if (( ( local_time > 1430  && local_time < 2230 ) || ( local_time > 0300 && local_time < 0430 ) )); then
 # do something
fi
Run Code Online (Sandbox Code Playgroud)

我偶尔会得到标题中指定的错误(上面的任何时间都会08xx触发错误).

对于如何解决这个问题,有任何的建议吗?

我在Ubuntu 10.04 LTS上运行

[编辑]

我按照SiegeX的建议修改了脚本,现在,我收到了错误:[: 10#0910: integer expression expected.

有帮助吗?

bash ubuntu octal

12
推荐指数
1
解决办法
7555
查看次数

[和[[?]之间的八进制扩展差异

据我所知,[[并且[可以预期其行为大致相同,考虑到一些额外的功能[[.但最近我注意到bash如何处理八进制扩展的差异:

$ b=010; echo $((b))
8
$ [[ $b -eq 8 ]]; echo $?
0
Run Code Online (Sandbox Code Playgroud)

$ [ $b -eq 8 ]; echo $?
1
$ test $b -eq 8; echo $?
1
$ [ $b -eq 10 ]; echo $?
0
Run Code Online (Sandbox Code Playgroud)

为什么后一个表达式会降低自动八进制转换?-eq根据help testBash和Bash参考手册中的"算术" 表达式,并且根据参考手册的下一部分,具有前导零的常量可以被视为八进制.

POSIX sh 在这个问题上有点不太清楚:尽管POSIX算术表达式仍然将前导零整数扩展到它们的八进制值,但它将-eq表达式test称为代数而不是算术.

是否有任何文件或证据表明bash 故意区分[[[进行八进制扩展,或者它只是一个偶然的特征?

bash sh octal

12
推荐指数
1
解决办法
202
查看次数

为什么PHP和JavaScript在处理八进制和十六进制数时有问题?

我注意到PHP和JavaScript处理八进制和十六进制数字时遇到一些困难,同时键入juggling和cast:

PHP:

echo 16 == '0x10' ? 'true' : 'false'; //true, as expected
echo 8  == '010'  ? 'true' : 'false'; //false, o_O

echo (int)'0x10';    //0, o_O
echo intval('0x10'); //0, o_O
echo (int)'010';     //10, o_O
echo intval('010');  //10, o_O
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

console.log(16 == '0x10' ? 'true' : 'false'); //true, as expected
console.log(8  == '010'  ? 'true' : 'false'); //false, o_O

console.log(parseInt('0x10')); //16, as expected
console.log(parseInt('010'));  //8, as expected
console.log(Number('0x10'));   //16, as expected
console.log(Number('010'));    //10, o_O
Run Code Online (Sandbox Code Playgroud)

我知道,PHP有octdec()hexdec()功能补救八进制/十六进制的不当行为,但是我希望在intval() …

javascript php hex casting octal

11
推荐指数
1
解决办法
659
查看次数

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

我正在尝试编写一个小的Python 2.x API来支持获取一个 jobby jobNumber,其中jobNumber提供了一个整数.有时用户提供一个jobNumber以0开头的整数文字,例如037537.(这是因为它们已被R语言所淹没,这是一种明智地考虑的语言037537==37537.)然而,Python认为以"0"开头的整数文字是OCTAL 037537!=37537,而是037537==16223.这让我觉得这是对最小惊喜原则的公然侮辱,幸好看起来这在Python 3中得到了修复---参见PEP 3127.

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

>>> fetchJob(037537)
Run Code Online (Sandbox Code Playgroud)

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

>>> fetchJob(038537)
File "<stdin>", line 1
 fetchJob(038537)
            ^
SyntaxError: invalid token
Run Code Online (Sandbox Code Playgroud)

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

似乎没有提供任何东西__future__以允许我获得Py3K行为---它必须以某种方式内置到Python,因为它至少需要更改词法分析器.

是否有人知道如何保护我的用户在这种情况下做错工作?目前,我能想到的最好的方法是更改​​该API,以便它采用字符串而不是int.

python octal pep

11
推荐指数
1
解决办法
1505
查看次数

八进制数(以8为底)有什么用?

Java提供了以2、8、10和16为基数编写数字文字的方法。

我想知道为什么包括基数8,例如int x = 0123;

我认为可能存在类似于十六进制的一个字节的容量为FF + 1等等的事实。

java literals octal

11
推荐指数
2
解决办法
934
查看次数

Java int division令我困惑

我正在做非常简单的int划分,我得到奇怪的结果.

此代码2按预期打印:

public static void main(String[] args) {
    int i = 200;
    int hundNum = i / 100;
    System.out.println(hundNum);
}
Run Code Online (Sandbox Code Playgroud)

此代码打印1期望:

public static void main(String[] args) {
    int i = 0200;
    int hundNum = i / 100;
    System.out.println(hundNum);
}
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

(Windows XP Pro,在Eclipse 3.4.1中运行的Java 1.6)

java int division octal

10
推荐指数
2
解决办法
1874
查看次数

如何在java中设置八进制的值?

我正在尝试编写以下代码.但它给了我错误,请帮助我.

    int six=06;
    int seven=07;
    int abc=018;
    int nine=011;
    System.out.println("Octal 011 ="+nine);
    System.out.println("octal O18 =" + abc);
Run Code Online (Sandbox Code Playgroud)

为什么我不能给018和019变量.我可以给变量赋值020和021.为什么会这样?这背后的原因是什么,请告诉我.
我得到了以下错误

            integer number too large: 018
            int eight=018;
Run Code Online (Sandbox Code Playgroud)

java octal

9
推荐指数
7
解决办法
4万
查看次数