linux环境下C编程(三)

不同数据类型的数字可能有重叠
字符类型是一种数据类型
字符类型名称是char
字符类型由256个不同的字符构成
每个字符对应一个整数数字(不同字符对应的数字不同)
每个字符数据有两个不同的身份 分别是字符和数字
ASCII码表列出字符和数字之间的关系
所有的字符数据分成两组 每组128个
其中一组两个身份间的对应关系在所有计算机上都一样 这足字符的数字身份是0到127
另外一组两个身份之间的对应关系在不同计算机上不一样
这组字符的数字身份可能是-1到-128,也可能是128到255


无符号字符类型也是一种数据类型
无符号字符类型的名称是 unsigned char
这个类型同样由256个字符构成,这些字符数字身份是固定的从0到255
ASCII码表中所有小写字母连续排列,大写字母也一样
\n 换行
\r 回车
\t 制表符
\\ 代表\
\' 代表'
\" 代表"


短整数类型是一种数据类型 用short表示 这个类型包括65536个不同的整数
从-32768到32767
无符号短整数用 unsigned short表示 数字范围0到65535
长整数类型用long int  表示
一共包含2的32次方个不同的整数 范围从-2的31次方到2的31次方减一
无符号长整数类型用unsigned long或者 unsigned long int 表示
范围从0到2的32次方减一


在我们使用的计算机环境下整数类型和长整数类型完全一样
以上所有整数类型的数字范围是逐渐扩大的


浮点类型用来表示小数点的数字
浮点类型分成单精度浮点数和双精度浮点数 
单精度用float 表示
双精度用double 表示


程序中整数数字后面加u表示这个数字是无符号整型 例如6U
在浮点数后面加f表示这个数字是float类型
在程序中没有特别说明类型的浮点数默认为double


数据类型和占位符之间对应关系


char %c / %hhd
short %hd
unsigned short %hu
long %ld
unsigned long %lu
int %d
unsigned int %u
float %f / %g
%f会保留小数点后面的无效0
double %lf / %lg


%nd 要求占n个位置
%-nd 要求占n个位置从左边位置开始打印
%0nd 用字符’0‘填充位置
%n.mf 表示整数占n个位置小数点占m个位置


不同类型之间的差异由他们在内存中所占的空间大小决定


内存中所有存储位置大小是完全一样的 我们把他们称为字节


一个变量所对应的存储位置由多个连续的字节构成


每个字节都有自己的地址 不同的字节地址不同


所有地址从0开始递增


变量的地址就是它所对应的字节中最前面那个字节的地址


sizeof关键字可以用来计算一个变量或者数据类型占多少个字节


char (unsigned char ) 1个字节
short(unsigned short) 2个字节
long(unsigned long) 4个字节
int(unsigned int) 4个字节
float 4个字节
double 8个字节


sizeof关键字可以计算一个公式结果的大小
sizeof对变量的修改无效


使用一组0或1表示数字的方法叫做二进制
计算机内部采用二进制表示
二进制和十进制只是表示数字的不同方式。任何数字既可以用二进制表示也可以用十进制表示
二进制数字中每个位置有一个编号,最右边位置编号是0 向左递增
二进制数字中某个为上为1 所对应的十进制描述方式是2的编号次方
二进制相邻的两个1所代表的数字之间有倍数关系
二进制转换十进制的方法:
对二进制每个位单独转换后相加
十进制转换二进制方法:
对十进制数字除2取余倒着写就可以得到对应的二进制
91  除以2得45余1
45  除以2得22余1
22  除以2得11余0
11  除以2得5余1
5   除以2得2余1
2   除以2得1余0
1   除以2得0余1
结果是0101 1011

采用刚才的方法转换得到的二进制叫做原码
计算机采用二进制补码记录数字
所有非负数的原码补码一致
每个字节可以采用八个二进制数位表示
八进制和十六进制是二进制的两中简化


把一个数字的二进制表示方式从右向左没三个数位分成一组 得到八进制
可以直接在程序中使用八进制的方式表示数字 这时需要在数字的前边加0
八进制对应的占位符是%o


把二进制表现形式从右向左每四个数位分成一组 妹夫0到9 a到f之间表示就得到十六进制
可以使用十六禁止表示数字 前面加0x  
%x和%X都可以表示十六进制的占位符 %x的适合所有字符都是小写的




练习:
1、编程把用户给定的一个0到255之间的数字转换成二进制并打印在屏幕上
(采用两中方法)
2、编程把用户给定的描述转换成如下格式并打印 hh:mm:ss












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值