标签: octal

PHP:为什么'abs'函数返回错误的数字,如果它从零开始?

代码"abs(070000)"返回28672,但代码"abs(70000)"返回70000.

开头的零是否意味着该数字被解释为十六进制?

谢谢!

php absolute octal

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

理解带有前导零的str_pad()

我正在尝试构建一个php函数并发现一些奇怪的行为,我甚至无法提出一个正确的问题,所以如果有人能解释发生了什么,我将不胜感激.

我正在使用带有前导零的一组数字,并且重要的是它们被维护,但用户几乎从不输入前导零.所以我用这个:

$x = 123;
$n = 5;
$x = str_pad((int)$x,$n,"0",STR_PAD_LEFT);
echo $x;
Run Code Online (Sandbox Code Playgroud)

并且,根据需要,这让我获得了成功.

当我测试用户在他们的号码之前输入零时,会发生奇怪的事情

$x = 0123;
$n = 5;
$x = str_pad((int)$x,$n,"0",STR_PAD_LEFT);
echo $x;
Run Code Online (Sandbox Code Playgroud)

这将返回00083.如果用户输入00123,则会发生同样的事情.

这个结果让我完全不知所措.提前感谢您对此处发生的事情的任何解释.

php octal

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

是否有解决数组中无效八进制数字的问题?

我正在尝试创建一个可以保存一天中的小时的数组,这样我就可以循环播放一个时钟.

我有:

int hourArray[24] = {12, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 01, 02,
                     03, 04, 05, 06, 07, 08, 09, 10, 11};
Run Code Online (Sandbox Code Playgroud)

我按顺序得到以下数字的错误08, 09, 08, 09.

它告诉我:

错误:八进制数字无效

我以前从来没有碰到这个,我想知道它是否有任何解决方法?

c++ arrays compiler-errors octal

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

是012e2八进制还是浮动?

应该如何用C语言解析?

1000 
Run Code Online (Sandbox Code Playgroud)

(如果八进制012*10 ^ 2)

要么

1200 
Run Code Online (Sandbox Code Playgroud)

(如果整数为十进制)?

c decimal type-conversion octal

1
推荐指数
2
解决办法
239
查看次数

如何使用 Base 8(八进制)数字?

在 C++ 中,一个八进制数是通过在它前面加上一个0,来定义的,例如:

01 = 1
010 = 8
014 = 12
Run Code Online (Sandbox Code Playgroud)

所以我正在试验如何在 c++ 中使用 Base 8,并尝试使用循环添加它,如下所示:

int base8Number = 00;
for (int i = 01; i < 011; i+=01)
{
    base8Number += i;
    cout << base8Number << '\n';
}
Run Code Online (Sandbox Code Playgroud)

显然,C++ 不喜欢使用八进制数,我得到的输出如下:

1
3
6
10
15
21
28
36
Run Code Online (Sandbox Code Playgroud)

我知道它在 Base 8 中不起作用的最明显的原因是28结果输出,因为该8数字未在 Base 8 中使用。

所以,我的问题是:你可以在 c++ 中使用 Base 8,还是只是打算用作常量,如果你可以在 c++ 中使用 Base 8,你怎么做?

c++ octal

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

快速处理八进制数

我可以轻松地将十进制数转换为八进制数,但我试图反过来做却被卡住了。

let decimal = 11_224_393
let octString = String(rawAddress, radix: 8, uppercase: false)
let octal = octString.toInt()
Run Code Online (Sandbox Code Playgroud)

我想要一个函数,它给定一个八进制数字的 Int 会将它作为八进制读入并将其转换为十进制

如:

// oct2dec(777) = 511
// oct2dec(10) = 8

func oct2dec(octal : Int) -> Int {
    // what goes here?
}
Run Code Online (Sandbox Code Playgroud)

octal swift

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

奇怪的输出,当数字从0开始

脚本:

$num = "00445790";
echo $num;
Run Code Online (Sandbox Code Playgroud)

收益:

00445790
Run Code Online (Sandbox Code Playgroud)

2.脚本

$num = 00445790;
echo $num;
Run Code Online (Sandbox Code Playgroud)

收益:

2351
Run Code Online (Sandbox Code Playgroud)

有人可以解释我为什么2351选择第二个脚本吗?

php numbers octal

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

使用八进制常量初始化 char 数组

我看到一条评论说用 char 数组初始化"\001"会将 nul 作为第一个字符。我已经看到在哪里\0设置了一个nul。

未经编辑的评论:

字符输入[大小] = ""; 是足够的初始化。如果您已初始化 input[SIZE] = "\001"; while ( '\001' == input[0]) 不会执行您认为它正在执行的操作;(这会创建一个空字符串,其中第一个字符为 nul 字符。)

这个节目

#include <stdio.h>
#define SIZE 8
int main ( void) {
    char input[SIZE] = "\001";

    if ( '\001' == input[0]) {//also tried 1 == input[0]
        printf ( "octal 1\n\n");
    }
    else {
        printf ( "empty string\n");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在 Linux 上运行,使用 , 编译gcc,输出:

octal 1
Run Code Online (Sandbox Code Playgroud)

所以第一个字符是1而不是'\0'
这是标准行为还是只是 …

c octal

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

确保以零开头的字符串进行十进制解释的最佳方法?

我有一些带有前导零的简单数据,并且我想插入一些其他值。像这样:

$ printf "C011=4\nC015=8\n" | perl -ne '/C(\d\d\d)=(.*)/; $l{$1}=$2 }{ $l{13}=($l{15}-$l{11})/2+$l{11}; printf "C%03d=%f\n",$_,$l{$_} for keys %l;'

C011=4.000000
C013=0.000000
C015=8.000000
Run Code Online (Sandbox Code Playgroud)

好的。Perl的不匹配11,以011

在上面的简单情况下,您可能会想,嘿,不管怎样,让我们​​使用哈希键中的前导零进行算术运算:

$ printf "C011=4\nC015=8\n" | perl -ne '/C(\d\d\d)=(.*)/; $l{$1}=$2 }{ $l{013}=($l{015}-$l{011})/2+$l{011}; printf "C%03d=%f\n",$_,$l{$_} for keys %l;'

C011=4.000000
C011=0.000000
C015=8.000000
Run Code Online (Sandbox Code Playgroud)

在这里,我显然将字符串011(printf变为11)和八进制数字013(其printf变为11)作为关键字。并且011and 015值的查找仍然失败。

在perl中,有哪些选择可以避免将前导零(而不是9)解释为八进制的数字的行为?我希望哈希键具有其适当的十进制值。

我有一个解决方法。我只想看看它是否是最简洁的解决方案。像全局不这样做的东西,我从不使用八进制。

预期产量:

C011=4.000000
C013=6.000000
C015=8.000000
Run Code Online (Sandbox Code Playgroud)

perl octal radix leading-zero

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

只允许八进制数

我的代码的作用是:

  • 用户选择从十进制到八进制或从八进制到十进制的转换。
  • 用户输入一个数字
  • 用户获得转化结果

现在我只想在从八进制转换为十进制时只允许 otcal 数字,如果数字不是八进制,则会发出错误消息。如何做到这一点?

#include <stdio.h>
#include <math.h>

int UmrechnungDezimalZuOktal(int dezimalzahl), UmrechnungOktalZuDezimal(int oktalzahl);
int main()
{
    char auswahl;
    int dezimalzahl, oktalzahl, nichtBeendet = 1, c;
    

    while (nichtBeendet) {
            printf("\n\n  ##################  AUSWAHL  ##################\n"
                "  #                                             #\n"
                "  #     1) Konvertierung Dezimal -> Oktal       #\n"
                "  #     2) Konvertierung Oktal -> Dezimal       #\n"
                "  #     3) Abbruch                              #\n"
                "  #                                             #\n"
                "  ###############################################\n\n");

            printf("Auswahl: ");
            scanf("%c", &auswahl);

            switch (auswahl) {
            case '1': {                                                                                      /* Konvertierung Dezimal -> Oktal */ …
Run Code Online (Sandbox Code Playgroud)

c octal

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