C语言中是用"OX"开头表示是十六进制数,那十进制,二进制,八进制呢?
发布网友
发布时间:2022-04-24 11:54
我来回答
共3个回答
热心网友
时间:2023-10-11 21:49
1,C语言没有直接输出二进制的方法。
2,八进制在输出的时候以0开头,例如:0123十进制的83
3,十进制正常输出,无特别表示。
4,十六进制在输出的时候以0X或者0x开头,例如0x123 十进制的291。
扩展资料:
进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。
基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。
位权是指,进位制中每一固定位置对应的单位值。
16进制就是逢16进1,只有0~9这十个数字,用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十进制就是逢10进1。
八进制就是逢8进1,八进制数采用 0~7这八数来表达一个数。
二进制就是逢2进1。
K进制就是逢K进1。
参考资料来源:百度百科-进制转换
热心网友
时间:2023-10-11 21:50
在c语言中,你还记得输出语句是什么吗?是不是printf("%d",数字)的形式啊?可是你有没有想过这样一个问题——"%d"代表什么?后面的数字又是什么意思?现在我告诉你——"%d"是一个格式化符号,表示十进制,而“数字”是要被格式化的数字(如果是小数,比如1.67,格式化变成1,取整不是四舍五入)。
十进制转八进制:printf("%o",十进制数字)
十进制转八进制:printf("%x",十进制数字)
【不考虑负数,因为负数转化的不是他们的原码,而是补码】
另外二进制转十进制没有直接可以调用的函数,你不妨自己写一个:
int
main()
{
//定义一个可以容纳二进制输入的空间
const
int
maxlength=50;
//定义统计输入二进制数的长度
int
length=-1;
//定义数组
char
binary[]=new
char[maxlength];
//按位输入0或者1
char
number;
//转化的十进制
int
decimalnum=0;
//循环输入,直到输入回车为止
printf("%s","输入一个0或1,直到回车结束");
scanf("%c",&number);
while(number!='\n'
&&
length
=0;--i)
{
int
temp=1;
//计算每个位的进制
for(int
j=1;j<=length-i;++j)
{
temp*=2;
}
//判断叠加
switch(binary[i])
{
case
'1':decimalnum+=temp;break;
}
}
//输出结果:
printf("%d",decimalnum);
return
0;
}
如果你是在vc++环境中调试,int
main-->void
main,去掉return
0一句话。
热心网友
时间:2023-10-11 21:50
整型常量
整型常量有3种表示方式:
①十进制整数。例如,123、一456、0。
②八进制整数。以0开头的整数是八进制数。例如,0123表示8进制数123<8),等于十进制数83。
③十六进制整数。以ox或0x开头的整数是十六进制数。例如,0x1.23或0Xl
23表示十六进制数123…),等于十进制数291。
如果在整型常量后面加上字母u或u,则表示无符号整数(unsigned
int)。例如,123U或123u是unsigned
int型的。如果在整型常量后面加上一个字母L或l,则表示长整数(10ngint)。例如,123[.或123l是long
int型的。