数据的存储与输出

进制转换,数据存储

十转二

  • 正数,直接求二进制码即可
  • 负数,先求正整数的二进制,再取反+1
  • 0的二进制全是0

二转十

  • 正数,普通方法计算
  • 负数,即最高位是1,将所有位取反,末尾+1,就是该负数的绝对值
  • 如果全是0,对应的十进制就是0

4个字节的int类型变量存储最大整数用十六进制表示:7FFF FFFF (2,147,483,647)

转义字符

八进制形式的转义字符最多后跟三个数字,也即\ddd,最大取值是 ‘\177’;//有符号

unsigned char a = ‘\377’; //无符号最大377 1111 1111

十六进制形式的转义字符最多后跟两个数字,也即\xdd,最大取值是 ‘\7f’。//有符号

unsigned char a = ‘\xff’ //无符号最大ff 1111 1111 十进制 255

\x要写在单引号里作为字符型字面量或者写在双引号里作为字符串字面量的一部分。

char a = '\x30';
char b[3] = "\x30\x31";

0x是整数型字面量。

int i = 0x0300;
long j = -0x03000000L;
unsigned long = 0x04000000UL;

数据输出,占位符

未完全总结,以下是比较容易混淆的点

(1)在C语言中使用格式说明符%d表示输出十进制,%o表示输出八进制,%x或%X表示输出十六进制。

(2)如果要带有前缀的输出八进制或十六进制,需要在格式说明符中加#。

%-08ld,这里的0不起作用,负号-的作用是将整数左对齐输出,后面会将08看成一个整数,如果不足8位,后面的会用空格补充

%08ld,这里的0起作用,将整数右对齐输出,共输出8位(含负号),如果不足8位,左面用0补充

%04x 以16进制输出,指定输出长度4位,左边不够用0补而不是空白符

如本例:
y = -43456
%-08ld的输出结果是:-43456  后面在跟两个空格
%08ld的输出结果是:-0043456

指数的格式输出

float i=3.5;
printf("%e\n",i);		//3.500000e+00 默认占12位
printf("%.4e\n", i);	//3.5000e+00	.4代表保留4位小数
printf("%11.4e\n", i);	// 3.5000e+00	11.4 总长度为11,保留4位小数,不包括小数点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值