`

「译」C++ 中 0 是十进制还是八进制?

阅读更多

原文:Is 0 a decimal literal or an octal literal?

译文:C++ 中 0 是十进制还是八进制?

译者:justjavac


C++ 中 0 是十进制还是八进制?

虽然在任何进制数种, 0 只有一个值——那就是「零」,之所以问这个问题,纯粹是闲着蛋疼。

最近和朋友们讨论关于数的话题,他说,八进制数现在几乎从未使用过。 我一时无法反驳,确实,除了我们经常使用的十进制,在计算机中用的最多的就是二进制和十六进制了,八进制数确实很“小众”。

等我回到家仔细一琢磨,八进制,八进制,「八进制就是以 0 开头的数字」,咦,那 0 算吗?0 也是以 0 开头的数字啊!如果 0 是八进制的话,那么我们几乎每天都在使用八进制数。 计算机中确实有很多东西值得深究,比如简单类型其实一点都不简单,更多蛋疼的计算机问题可以去我的《代码之谜》系列去看看。

那么 0 是八进制数吗?C++ 规范如何定义的?

是的,在 C++ 中,0 是 八进制 的。

根据 C++ 标准:

2.14.2 整数 [lex.icon]

integer-literal:  
    decimal-literal integer-suffixopt  
    octal-literal integer-suffixopt  
    hexadecimal-literal integer-suffixopt  
decimal-literal:  
    nonzero-digit  
    decimal-literal digit  
octal-literal:  
    0                    <--------------------<这里>
    octal-literal octal-digit

以后我们设置可以自豪的说,“在计算机中,八进制比二进制,甚至十六进制更普遍”。

12
6
分享到:
评论

相关推荐

    关于C++中0是十进制还是八进制的问题

    关于"0"是否代表十进制还是八进制的问题,答案是:在C++中,前导0的数字被视为八进制(octal)数。 C++标准(ISO/IEC 14882)对整数字面量(integer literals)的定义做了明确的规定。在标准的2.14.2章节中,它详细...

    十进制转八进制问题

    ### 十进制转八进制问题 #### 知识点概述 在计算机科学与数学领域,数制转换是一项基本而重要的技能。本篇将详细探讨如何从十进制(Base-10)数制转换到八进制(Base-8)数制,并通过具体的程序代码来实现这一转换...

    用栈实现十进制转换为八进制

    用数据结构中的栈实现十进制转换成八进制,

    八进制与十进制的互相转化

    汇编语言中八进制与十进制的互相转化,对初学汇编的同学帮助很大

    c++实现十进制以内任意进制的转换

    在计算机科学中,最常见的进制有二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进制(Hexadecimal)。进制转换主要依赖于基数的概念,即每个位置上的数字代表的值是基数的幂次。例如,十进制中每一位...

    十进制转换到二进制、八进制、十六进制

    本篇文章将深入探讨如何利用C语言实现从十进制转换到二进制、八进制以及十六进制的方法。 一、十进制转二进制 十进制是我们日常生活中最常用的数字系统,而二进制则是计算机内部处理数据的基础。在C语言中,可以...

    C++实现各进制间转换

    二进制由0和1组成,八进制由0-7组成,十进制由0-9组成,而十六进制则由0-9和A-F(代表10-15)组成。 2. 进制转换原理:不同进制之间的转换主要基于数学上的位值计算。例如,将二进制转换为十进制,可以通过按权展开...

    C/C++描述的计算机十进制与其他进制间的的转换

    在计算机科学中,数字的表示通常涉及多种进制,包括我们熟悉的十进制(Decimal)、二进制(Binary)、八进制(Octal)和十六进制(Hexadecimal)。C/C++编程语言提供了多种方法来处理这些进制之间的转换。本篇文章将...

    十进制数转换为二进制八进制十六进制数c++代码

    把任意一个十进制数转换为二进制八进制十六进制数的c++源代码

    c++ 十六进制转换十进制

    这段代码中,`chgeNum`函数接收一个十六进制字符串`str`作为输入,然后通过遍历字符串中的每一个字符,并根据字符的ASCII码值判断其是数字还是字母,进而计算出对应十进制数值的权重,最后累加得到整个十六进制数的...

    八进制转化为十进制

    是一个c++程序 把把八进制转化为十进制

    十进制转换成八进制

    本例中的代码实现了十进制到八进制的转换,主要分为以下几个部分: 1. **定义栈结构**: ```c++ typedef struct { int *base; // 栈底指针 int *top; // 栈顶指针 int stacksize; // 栈容量 } sqstack; ```...

    进制间的转换C++,包括二进制,八进制,十进制,十六进制

    对二进制,八进制,十进制,十六进制的转换

    实现十进制向七进制转换

    本文将详细阐述如何使用C++编程语言实现从十进制到七进制的转换。十进制是我们日常生活和计算中最为常用的计数系统,而七进制则是一种以7为基数的计数系统。理解不同进制之间的转换有助于我们更好地理解计算机如何...

    十进制数转换为二进制,八进制,十六进制数

    用数据结构栈实现的数制转换,将十进制数转换为二进制,八进制,十六进制。

    QT C++进制转换器 包括十进制转二进制,十进制转八进制,十进制转十六进制

    (3)创建单选按钮组,能够选择将十进制转换成二进制、八进制、十六进制; (4)创建“计算”按钮,单击时根据单选按钮组的选择进行转换;创建“清空”按钮,单击时文本框的数字设置为0;创建“退出”按钮,单击时退出...

    c语言编程题:从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。

    根据给定的文件信息,本篇文章将围绕C语言编程题展开,主要介绍如何从键盘接收一个十进制数,并将其转换成二进制、八进制以及十六进制数进行输出的方法。 ### 一、问题描述 题目要求通过C语言编程实现从键盘输入一...

    二进制、八进制、十六进制转换.doc

    在C/C++中,八进制数通常以数字0开头,如0123表示八进制数,等同于十进制的83。 6.2.4 八进制数在转义符中的使用 在字符串中,八进制转义序列以\0开头,后跟三位八进制数字,代表ASCII码对应的字符。 6.2.5 十六...

    用C++实现十进制到十六进制的两种转换方法.docx

    在实际应用中,我们经常需要将十进制数转换为十六进制数,本文将介绍两种使用 C++ 实现十进制到十六进制转换的方法。 十进制到十六进制的转换方法 方法一:使用移位运算 在第一种方法中,我们使用移位运算来实现...

Global site tag (gtag.js) - Google Analytics