C语言怎么实现移位补1的 *** 作?

C语言怎么实现移位补1的 *** 作?,第1张

这个左右移位置添颂塌闷1或者0都是有函数的,添0就是熟悉的“<<”,添1就是“_ctrl_l”函数(好像叫这名字,教材上写了)。或者你添1写一个与,比如你给的例子:temp = 0B0000 0001

result = (temp <<1) &temp尽量不要写成result = (temp <<1)+ temp或者result = (temp <<1) + 1编程少用数学运算,尽量用逻辑运算,减少计算机的负衫逗担。以后程序复杂了用逻辑运算会显得你很会编程。我面试的时候写了一段简单的程序,因为我常用逻野弯辑运算,所以被录用了。老板告诉我其他人都用数学运算。

好瞎氏陵似信号标志。例如 红灯,绿灯。

标志位 置1 用按位 或,置0用按 与。

例如:

unsigned short int flag

假定 最高位 是 信号标志

置1 flag = flag | 0x8000

置0 flag = flag &0x7FFF

0,1, 谁核拆是红灯,谁磨戚是绿灯,由编程者决定。

将一个无符号数的特定位置1,方态仔派法很简单,帆贺只需要定义个宏就可以实现,如下:#define SET_BIT(val, bit) ((val) | (0x1 <<戚睁 (bit)))其中val是无符号数,bit是要置1的指定位同理可以实现一个将无符号数的特定位清0的宏,如下:#define CLR_BIT(val, bit) ((val) &~(0x1 <<(bit)))

调用宏,如下: bit = 1val = SET_BIT(val, bit)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12498304.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存