C语言中的基本类型

2016-11-29 19:19:51来源:CSDN作者:wufuzeng人点击

1、整形

int a = 10 ; 十进制,格式化输出:%i
int b = 0743;八进制,格式化输出:%o %#o(输出前导符号0)
int c = 0x7f3d;十六进制,格式化输出:%x %#x(输出前导符号0x)

2、浮点型

float f = 1.234;格式化输出:%f(小数部分默认长度为6,不够用0填补)
double d = 1.3e-11;格式化输出:%e(按照科学技术法输出)

  • 在Obj-C中,编译器将把单精度浮点数作为双精度来处理;除非定义为float f=1.23f,则为单精度浮点数。
  • 格式化输出:%g,将省略到浮点型数字的多余0。

3、long

long int a = 10L;   格式化输出:%li %lo %lx,分别使用十进制,八进制,十六进制格式输出。
long long int b = 10LL; 格式化输出:%lli %llo %llx,分别使用十进制,八进制,十六进制格式输出。
long double d = 1.234e+7L; 格式化输出:%Lf %Le %Lg

4、无符号

unsigned int a = 10U, b = 11u;
unsigned long int a = 19UL, b = 119ul;
//当一个int的数值太大而无法存入int,并且没有使用后缀时,则编译器当作是无符号的整数来处理。
//当一个int的数值太小而无法存入unsigned int,并且没有使用后缀时,则编译器当作是long int来处理。

基本数据类型图片

Type Constant Examples NSLog chars
char ’a’, ’/n’ %c
short int %hi, %hx, %ho
unsigned short int %hu, %hx, %ho
int 12, -97, 0xFFE0, 0177 %i, %x, %o
unsigned int 12u, 100U, 0XFFu %u, %x, %o
long int 12L, -2001, 0xffffL %li, %lx, %lo
unsigned long int 12UL, 100ul, 0xffeeUL %lu, %lx, %lo
long long int 0xe5e5e5e5LL, 500ll %lli, %llx, &llo
unsigned long long int 12ull, 0xffeeULL %llu, %llx, %llo
float 12.34f, 3.1e-5f, %f, %e, %g, %a
0x1.5p10, 0x1P-1
double 12.34, 3.1e-5, 0x.1p3 %f, %e, %g, %a
long double 12.341, 3.1e-5l %Lf, %Le, %Lg
id nil %p

基本数据类型

基本数据类型

有符号短整型 %hd
int i1 = 32767;//2^15-1
有符号的长整型 %ld
long int i3 = 2147483648;//2^31-1
有符号的长长整型 %lld
long long int i4 = 4567890123;//2^31-1
无符号的短整型%hu
unsigned short int i6 = 65535;//2^16-1
无符号的整型 %u
unsigned int i5 = 4294967295;//2^32-1
无符号的长整型%lu
unsigned long int i7 = 1234567890123;//2^32-1
无符号的长长整型 %llu
unsigned long long int i8 = 456789012345;//2^64-1

基本类型所占字节

字符型1字节
短整型2字节
整型4字节和浮点型4字节
其他整型和双精度8字节
长双精度型16字节

实型变量:分为单精度(float型)、双精度(double型)和长双精度(long double型)三类。

  • 单精度:4字节(32位),范围为3.4E-38~3.4E+38,只能提供七位有效数字。
  • 双精度:8 字节(64位),范围为1.7E-308~1.7E+308,可提供16位有效数字。
  • 长双精度:16字节(128位),可提供18-19位有效数字。

整数类型(int、long)使用常见问题汇总

  • 超出范围
  • 两个整数相除,结果仍是整数,小数会被舍弃

三种不同的进制给整数赋值

int x = 100;intf(“%d/n”, x);//十进制
int x = 0100;printf(“%#o/n”, x);//八进制//输出结果前加0
int x = 0x100;printf(“%#x/n”, x);//十六进制//输出结果前加0x

字符型char %c

char c1 = 127;//2^7-1
char c2 = ”;//单引号中必须有一个字符

实现大小写字母之间的转换

a’-‘A’=‘z’-‘Z’= 97 - 65 = 32

转义符

换行/n
回车/r
制表符/t
单引号/’
双引号/”
反斜杠/
百分号%%

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台