C语言笔记

C语言printf

-3%d 负号代表左对齐 3%d 默认代表右对齐

0101 0101 1个字节byte 是8位 bit

对于int变量来讲 最高位是符号位 0代表正数 1代表负数

1kb=1024字节

1Mb=1024KB

1GB=1024MB

十进制转二进制 八进制 十六进制

比如 123

二进制 123不断除2

八进制 123不断除8

十六进制 123不断除16

二进制转十进制 八进制 十六进制

比如123

二进制 0111 1011

转八进制

每3个为一次 001 111 011

011->1*2的0次+1*2的1次+0*2的2次=1+2+0=3

111->7

001->1

所以八进制为173

转十六进制

每4个为一次0111 1011

1011->1*2的0次+1*2的1次+0*2的2次+1*2的3次=11 11对于十六进制的b

0111->7

所以为7b

八进制转十进制

173

3*8的0次+7*8的1次+1*8d的2次=3+56+64=123

十六进制转十进制

7b

11*16的0次+7*16的1次=123

%d 十进制输出

%o 八进制输出

%x 十六进制输出

所有的集成开发环境看内存都是用十六进制展示的

为啥 00 00 00 7b 显示是 7b 00 00 00

因为英特尔的CPU采用了小端方式进行数据存储 因此低位在前,高位在后

何为低位?何为高位?

0000 0000 0000 0000

前八位就是高位,后八位就是低位

所以为啥 00 00 00 7b 显示是 7b 00 00 00

如果要用八进制表示 前面要加个0表示八进制

如果要用十六进制表示 前面要加个0x表示十六进制

win+r->输入calc打开计算器

scanf需要注意的点

1.如果有%c前面加个空格

比如%d %c

因为scanf中的标准输入缓冲区,如果输入一个整数加空格等等 比如5 c %d对于5 而空格对应%c 就会把空格算进去 因此可以前面加个空格解决

2.写两个scanf

其中有一个scanf含有%c 使用fflush(stdin) //清空标准输入缓冲区

因为scanf标准输入缓冲区第一个写了比如输入5 缓冲区里会放5\n,而第二个scanf如果为%c 缓冲区要输入时候会读取\n,从而跳过导致不能输入,不能卡住(阻塞),因此要使用fflush(stdin) 清空标准输入缓冲区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰弹饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值