69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main()
{
char a = 'A';
printf("%o\n", a);
char character = 0101;
printf("%c\n", character);
character = 0x41;
printf("%c\n", character);
return 0;
}
八进制标识不是要这样吗?
个人认为不需要沿着楼主的想去去分析,因为楼主的认为和思路可能本身就是不对的。[quote=引用 5 楼 战在春秋的回复:]八进制表示是 \... 注意观察,题目中之所以输出0101是因为格式字符串有一个 # ,它的作用如下: 为什么呀翻译过来的意思就是如果是非零数,会在数字前放一个前置0。 我翻译得不好,你看一下英文原文应该能理解。 想要达到你期望的效果,应该用以下代码: For o, x, X types, the text 0, 0x, 0X, respectively, is prepended to non-zero numbers.您可以运行这段代码,对比一下题目的写法 。void main() { char a = 'A'; printf("%o\n", a); char character = '\101'; printf("%c\n", character); }
#include <stdio.h>
int main()
{
char a = 'A';
printf("%o\n", a);
char character = 0101;
printf("%c\n", character);
character = 0x41;
printf("%c\n", character);
return 0;
}
0前缀说明后面的数据是八进制形式,0x前缀的数据,说明是16进制。
不需要加''[quote=引用 3 楼 冬南风的回复:][quote=引用 2 楼 T20091 的回复:] \0101 前面的\去掉
[quote=引用 13 楼 自信男孩的回复:][quote=引用 6 楼 qq_29648169 的回复:] [quote=引用 5 楼 战在春秋的回复:]八进制表示是 \... 注意观察,题目中之所以输出0101是因为格式字符串有一个 # ,它的作用如下: 为什么呀翻译过来的意思就是如果是非零数,会在数字前放一个前置0。 我翻译得不好,你看一下英文原文应该能理解。 想要达到你期望的效果,应该用以下代码: For o, x, X types, the text 0, 0x, 0X, respectively, is prepended to non-zero numbers.您可以运行这段代码,对比一下题目的写法 。void main() { char a = 'A'; printf("%o\n", a); char character = '\101'; printf("%c\n", character); }
#include <stdio.h>
int main()
{
char a = 'A';
printf("%o\n", a);
char character = 0101;
printf("%c\n", character);
character = 0x41;
printf("%c\n", character);
return 0;
}
0前缀说明后面的数据是八进制形式,0x前缀的数据,说明是16进制。
不需要加''[/quote]
你好,你的写法也是可以的,谢谢回复[/quote]
但是加''的八进制数值能标识超过255的数吗?不客气,共同学习。 可以的话,请结题散分好吗^_^ 谢谢。很好的解决我的问题
[quote=引用 6 楼 qq_29648169 的回复:] [quote=引用 5 楼 战在春秋的回复:]八进制表示是 \... 注意观察,题目中之所以输出0101是因为格式字符串有一个 # ,它的作用如下: 为什么呀翻译过来的意思就是如果是非零数,会在数字前放一个前置0。 我翻译得不好,你看一下英文原文应该能理解。 想要达到你期望的效果,应该用以下代码: For o, x, X types, the text 0, 0x, 0X, respectively, is prepended to non-zero numbers.您可以运行这段代码,对比一下题目的写法 。void main() { char a = 'A'; printf("%o\n", a); char character = '\101'; printf("%c\n", character); }
#include <stdio.h>
int main()
{
char a = 'A';
printf("%o\n", a);
char character = 0101;
printf("%c\n", character);
character = 0x41;
printf("%c\n", character);
return 0;
}
0前缀说明后面的数据是八进制形式,0x前缀的数据,说明是16进制。
不需要加''[/quote]
你好,你的写法也是可以的,谢谢回复谢谢。很好的解决我的问题
[quote=引用 6 楼 qq_29648169 的回复:] [quote=引用 5 楼 战在春秋的回复:]八进制表示是 \... 注意观察,题目中之所以输出0101是因为格式字符串有一个 # ,它的作用如下: 为什么呀翻译过来的意思就是如果是非零数,会在数字前放一个前置0。 我翻译得不好,你看一下英文原文应该能理解。 想要达到你期望的效果,应该用以下代码: For o, x, X types, the text 0, 0x, 0X, respectively, is prepended to non-zero numbers.您可以运行这段代码,对比一下题目的写法 。void main() { char a = 'A'; printf("%o\n", a); char character = '\101'; printf("%c\n", character); }
#include <stdio.h>
int main()
{
char a = 'A';
printf("%o\n", a);
char character = 0101;
printf("%c\n", character);
character = 0x41;
printf("%c\n", character);
return 0;
}
0前缀说明后面的数据是八进制形式,0x前缀的数据,说明是16进制。
不需要加''[/quote]
也许你的是正确的。但是我也可以告诉你我和楼上朋友的写法是没有问题的。你可以翻阅各种书籍查看,转义字符就是要这样写的问题比较隐蔽 关键点还是要记住八进制数表示是 \... \0101 中 010会解释成8进制,其对应的十进制为 8 ,查一下ascii表可知其对应 退格键(属于不可见字符)。 \0101 这样处理后的结果就是输出退格1,显示在屏幕上就是1 您可以换成\0105,\0109试试。 ascii表请参考: http://ascii.911cha.com/ 麻烦了
麻烦了
[quote=引用 2 楼 T20091 的回复:] \0101 前面的\去掉
\0101 前面的\去掉
八进制表示是 \... 注意观察,题目中之所以输出0101是因为格式字符串有一个 # ,它的作用如下: 为什么呀翻译过来的意思就是如果是非零数,会在数字前放一个前置0。 我翻译得不好,你看一下英文原文应该能理解。 想要达到你期望的效果,应该用以下代码: For o, x, X types, the text 0, 0x, 0X, respectively, is prepended to non-zero numbers.您可以运行这段代码,对比一下题目的写法 。void main() { char a = 'A'; printf("%o\n", a); char character = '\101'; printf("%c\n", character); }
为什么呀
For o, x, X types, the text 0, 0x, 0X, respectively, is prepended to non-zero numbers.
void main()
{
char a = 'A';
printf("%o\n", a);
char character = '\101';
printf("%c\n", character);
}
您可以运行这段代码,对比一下题目的写法 。
\0101 前面的\去掉