零总是为零,所以没关系.但在最近与我的朋友讨论时,他说今天几乎没有使用八进制文字.然后我突然意识到我的代码中几乎所有的整数文字都是八进制的,即0.
0根据C++语法是八进制文字吗?标准说什么?
在JavaScript的parseInt函数中将基数默认为8(如果字符串以0开头)让我烦恼,只因为我继续忘记将可选的第二个参数传递为10.我正在寻找答案告诉我为什么它有意义默认为8.
我正在将一个日历对象中存储的日期转换为MySQL中的查询.我需要格式为"yyyy-MM-dd HH:mm:ss"的字符串,即:"2010-01-01 15:30:00".我正在使用如下代码:
Calendar TimeStop = Calendar.getInstance();
TimeStop.set(2010, 01, 01, 15, 30, 0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String TimeStop_Str = sdf.format(TimeStop.getTime());
Run Code Online (Sandbox Code Playgroud)
现在,该字符串的,而不是"2010 - 01 -01 15:30:00"像我所期望的是"2010 - 02 -01 15:30:00".我已经在http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html上检查了解析器公式中可能存在的错误(例如,月份或资本HH的资本MM)几个小时)但它没有奏效.
我想我应该设置一些其他领域,或者可能还有另一种方法......任何想法?
一开始这可能看起来是一个愚蠢/琐碎的问题,但是当我这样做时:
char f_gear = 15;
Run Code Online (Sandbox Code Playgroud)
我得到了正常的输出
"?"
Run Code Online (Sandbox Code Playgroud)
但是当我宣布它时,我用零填充它:
char f_gear = 015;
Run Code Online (Sandbox Code Playgroud)
我得到奇怪的输出使文本看起来乱码(在一行)并且空白前一行.当我试图看到个人角色时,我得到以下内容:
" ??@?S? "
Run Code Online (Sandbox Code Playgroud)
有什么本质的不同?不是15 == 015?
当我发布问题时,== EDIT == Stack Overflow改变了文本.我真正看到的输出是一些空白字符.
许多语言(至少C可以追溯到.
0x或以0X16 进制(十六进制)数字作为前缀0前缀为 8 进制(八进制)数字我了解十六进制和十进制的用法。它们随处可见,具有不同的用例,使代码更具可读性(按位andwith0x20000比 with 更清晰131072),并且不能混淆(带有 'x' 或 'X' init 的数字不会使感觉为十进制数)。
然而,八进制文字对我来说似乎是一个错误。首先,我从未见过它们被使用,并且似乎无法想到一个单一的用例,可以使代码在十六进制或十进制上使用它们更具可读性。此外,它们可能会与十进制数(010编程语言域之外的完全合法的十进制数)混淆。
那么,八进制文字有用途吗?它们是某种形式的历史遗留包袱,它们曾经有用过,还是只是一个错误?
我有一个按钮,在后面的代码我添加一个onclick,我传递一个唯一的ID,将传递给js函数.id以0开头.
它没有工作,最终我发现数字,身份证,传递是错误的......
IE浏览器.看到这个:js小提琴
它与数字的开头和结尾一起使用.只是想知道为什么013转到11.我做了一些谷歌搜索,找不到任何东西......
干杯
知更鸟
编辑:
多谢你们.是的,现在明白了.
在这种情况下,开头的0有一个含义,这里是邮件列表中的收件人ID,我将使用'013'而不是013,即一个字符串.然后我可以在js中拆分值,因为3个值中的每一个代表一个不同的id,它总是只有1个字符长,即0-9.
我有以下代码:
int ret() {
int x = 010;
int y = 4;
int z = x | y;
return z;
}
Run Code Online (Sandbox Code Playgroud)
当x = 010时,此函数返回12.但是,在将x更改为10时,将返回14.为什么会这样?
var value = 05000;
var addValue = 1;
Run Code Online (Sandbox Code Playgroud)
如果我计算 value + addvalue,那么它正在计算错误的值
var result = value + addValue;// it's return value is 20481
Run Code Online (Sandbox Code Playgroud)
从快速观察结果中看到下面的图像
但是如果我将值赋予5000(在值之前没有0),那么它的计算是正确的.为什么?