c语言的学习day02

2个byte的最大值为65535

当数据的宽度有明显的限制时,必须是2个byte时,采用short

char a = -1,a即为0xff,a>>1后,前面始终有符号“-”

unsigned char a = -1,前面的“-”会当作数据位处理,当a>>1后,可能最后a就为0了

无符号代表的是数据,有符号代表的是数字

当表达的的数据更倾向于数据时,使用无符号

union是共用体,共用起始地址,修改1个值,其他的值可能改变,一般用于技巧性代码

enum定义的是整型常量的集合,enum的size只是一个int的大小

xxx_t 在linux中一般是通过typedef定义了一下

switch后不能跟浮点数,求模也不能跟浮点数

for用到的场合是需要次数,while用到的场合是需要条件;goto常用在同一个函数中

默认情况下,也就是auto变量,用在可读可写的区域,区域如果有{},表示是栈空间

register常用来定义快速访问的变量,&(取地址符)对register变量不起作用

volatile修饰的变量不仅仅可以通过软件修改,也可以通过硬件修改,比如用户按下键盘

乘法对于cpu不是一步指令就能实现的,可能需要多个周期,或软件模拟来实现

给一个任意的数字,得到1到100之间的数,解决:设任意的数为m,m%100可以得到0到99之间的数,再加1,即m%100+1

求模的3个使用场景:

1.求某个范围的数;2.求M进制的一个个位数;3.求循环结构的数组下标

c语言中,0代表假,非0代表真

int b *32,cpu会处理成b左移5位,即b<<5

-1为11111111,为全高电平,是一种特殊的状态

int a = xxx;

while(a)

{
    a>>1;
}
printf("xxx");

如果a为负数,那么a右移时,左边填充的就是1,所以while部分是死循环,执行不到printf

对第n位清0:a&(~(0x1<<n))

对第n位置1:a| (0x1<<n)

异或^经常用在算法中,比如AES、sha1等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值