C语言换算和符号

:%-08Ld中的0表示什么 ?它和%-8Ld有什么不同?举例解释啊谢谢
%#8o中的O是什么意思啊?代表什么啊?
如果int=a ; a=12345那么 上诉问题怎么回答?
十进制怎么换算成8进制和16进制啊?
十进制用相除取余转化为2进制,再转化为8,或16进制。(能不能举例说明啊比如23怎么转化成8或16进制啊?要过程啊!谢谢 %#8o中的#是什么意思
三位为一位是什么意思啊?
?\\

%-08Ld 和 %-8Ld 没有什么不同。因为都向左靠拢,不会填0。

%#8o中的O是按八进制数值输出。#填一个0
printf("%#8o",a);
030071
printf( "%08o",a);
00030071 // 八进制,占8格,填0
printf("%-08Ld",a);
12345 // 向左靠

机内数都是二进制。无所谓十进制,8进制和16进制。
输出 用 %x 就是 16进制,用 %o 就是 8进制.
写入字符串,用 sprintf(str,"%x",a); sprintf(str,"%o",a); 就可以。
手算:不断 除2,化二进制,3位一组成8进制,4位一组成16进制。

VC++ 编译器。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-04-13
把二进制的三位转化为八进制的一位。把二进制的四位转化为十六进制的一位

23/2----1
11/2----1
5/2----1
2/2----0
1/2----1

取余数:10111就是二进制
八进制:从后取,三位为一位:10 111即:27
16进制:从后取,四位为一位:1 0111即:17

#就是用#来填充不够的位数啊!

1、%-08Ld中的0表示什么 ?它和%-8Ld有什么不同?
0是前面用0补满8位的意思。没有0就用空格补满了。

2、%#8o中的O是什么意思啊?代表什么啊?
o是八进制输出。

3、十进制怎么换算成8进制和16进制啊?
十进制用相除取余转化为2进制,再转化为8,或16进制。
8进制以为代表2进制3位,16进制4位。

4、如果int=a ; a=12345那么 上诉问题怎么回答?
1的:00012345
2的:转化8进制后的,#补满
第2个回答  2008-04-11
0开头表示是8进制
o表示8进制无符号整数,输出时前边没0
a=12345
%-08Ld靠左030071,%-8Ld靠左30071
格式化输出可以
8进制:%o 十六进制%x