c语言数字前缀与后缀

c语言数字前缀与后缀

前缀

0: 八进制 0x: 十六进制 0b: 二进制

注意:这里的前缀是0(零)不是o

十进制不需要前缀,15=0xf=017=0b1111

#include <stdio.h>
int main()
{
    printf("%x ",0b101);//%x:16进制输出,0b前缀:二进制数字
    printf("%o ",0101); //%o:八进制输出, 0前缀:八进制数字
    printf("%d",0x10);//0x前缀:16进制数字
    return 0;
}

进制转化原理:

链接

二进制转化16进制:每四位二进制数=一个16进制位;

二进制转化10进制:整数就从右到左依次乘以2的次方,其中首位为1是负,为0是正数。

双精度浮点数(10进制)转化为2进制:

//小数转二进制
//
//采用"乘2取整,顺序排列"法:
//
//1.用2乘十进制小数,可以得到积,将积的整数部分取出
//2.再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出
//3.重复操作,直到积中的小数部分为零,此时0或1为二进制的最后一位,或者达到所要求的精度为止
//
//例如将0.125转换为二进制:
//
//0.125  *  2  =  0.25 ------0
//
//0.25   *  2  =  0.5   ------0
//
//0.5  *  2  =  1.0     ------1
//
//当小数部分为0就可以停止乘2了,然后正序排序就构成了二进制的小数部分:0.001
//
//如果小数的整数部分有大于0的整数时,将整数部分和小数部分先单独转为二进制,再合在一起就可以了,例如:
//
//假设要将8.125 转换为二进制
//
//现将8转为二进制:得到1000
//再将0.125转为二进制:得到0.001
//
//合并后为1000.001

二进制转化为8进制:3位二进制数=一位八进制数

后缀

1

数值后面加“L”和“l”的意义是该数值是long型, 详细说明如下: 5L的数据类型为long int。 5.12L的数据类型为long double。

2

数值后面加“U”和“u”的意义是该数值是unsigned型。后缀字母大小写都可以, U与L可以组合使用(100UL)

3

后缀是F, 表示float, 但是F不可以和U组合, 因为浮点数没有unsigned。在C语言中,如1.8这样的数字。如果加以提前声明,如float num=1.8,会被认为是float类型;如果不加以声明,则被默认为double。因此需要在数字后加上f,以表示该数字类型为float。

4

数值后面加“”H“、“h”的意义是该数值是用16进制表示的。 数值后面加“”B“、“b”的意义是该数值是用2进制表示的。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务