首页 > 其他分享 >C语言技巧

C语言技巧

时间:2023-12-13 16:59:12浏览次数:31  
标签:技巧 二进制 C语言 按位 倍数 1000 size

隐藏在C语言里面的奇技淫巧

对齐到最近的8的倍数。

这个表达式 (size + 7) & ~(7) 是一个常见的位操作技巧,用于将 size 向上对齐到最近的8的倍数。

  1. ~(7):首先,7 的二进制表示是 0111。按位取反 ~ 操作会将所有的1变为0,所有的0变为1,所以 ~(7) 就是 1...1000
  2. size + 7:这个操作是将 size 增加7。这确保了如果 size 不是8的倍数,那么通过加7,它至少会达到下一个8的倍数减1。
  3. &:这是按位与操作。当 (size + 7)1000(即 ~(7))进行按位与操作时,(size + 7) 中低于8的所有位都会被清零,因为 1000 中这些位都是0。

综合以上步骤,这个操作的效果是将 size 向上对齐到最近的8的倍数。例如,如果 size 是10(二进制表示为 1010),那么 (size + 7) 就是17(二进制表示为 10001),然后和 1...1000 进行按位与操作后,结果就是16(二进制表示为 10000),这是大于10的最小的8的倍数。


标签:技巧,二进制,C语言,按位,倍数,1000,size
From: https://www.cnblogs.com/cyj22/p/17899412.html

相关文章

  • Vue后台项目开发必备:全面解析分辨率适配与网页缩放技巧!
    1.各屏幕分辨率下适配展示首先给大家展示一下我的屏幕分辨率兼容效果,方便大家来判断我的适配方案是否可行正常1920*1080100%1920*1080150%1440*900100%1440*900150%2.屏幕分辨率适配方案这里就不再过多举例了,通过这四张图可以看出来页面布局并没有受到过多的影响,所以直接上代......
  • Vue后台项目开发必备:全面解析分辨率适配与网页缩放技巧!
    1.各屏幕分辨率下适配展示首先给大家展示一下我的屏幕分辨率兼容效果,方便大家来判断我的适配方案是否可行正常1920*1080100%1920*1080150%1440*900100%1440*900150%2.屏幕分辨率适配方案这里就不再过多举例了,通过这四张图可以看出来页面布局并没有受到过多的影响,所以直接上代......
  • 实验6 C语言结构体、枚举应用编程
    1.实验任务1源代码1//P286例8.172//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块3//打印不及格学生信息和所有学生信息程分别调用45#include<stdio.h>6#include<string.h>7#defineN3//运行程序输入测试时,可......
  • mysql花式操作数据小技巧总结
    mysql花式操作数据小结本文是一片关于一些mysql小技巧的总结。主要内容包括:字段中包含多值、基于字段中某个值查询、基于身份证设置性别、身份证生成出生日期、增加表字段、一次搞定多个查询、关联删除、通过关系表一对多查询合并到一条记录、替代like1.字段中包含多值字段为cro......
  • c语言,任意位置插入字符或者字符串
    char*insert(char*s1,char*s2,intn){intlen1=0,len2=0,i,j=0,k=0;charstr3[100];if(s1==NULL){returnNULL;}if(s2==NULL){returns1;}len1=strlen(s1);if(n>strlen(s1))......
  • C语言入门这一篇就够了(入门篇1)
    C语言是什么C语言是一种广泛使用的通用编程语言,它是由美国计算机科学家DennisRitchie于1972年在贝尔实验室开发出来的。C语言的设计原则是让程序员有更多的自由度,以方便控制硬件,从而提高程序的运行效率。它支持结构化编程、词汇变量作用域和递归等功能,并且可以直接访问物理内存地......
  • [刷题技巧] 链表刷题技巧汇总
    链表的算法题中很常见的技巧:添加虚拟头结点,即dummy结点。当需要创造一条新链表的时候,可以使用虚拟头节点简化边界情况的处理。例如:LeetCode21.合并两个有序链表,让两条有序链表合并成一条新的有序链表,需要创造一条新的链表。例如,LeetCode86.分隔链表,把一条链表分解成两条链......
  • C语言!!!!
    //已有一个已正序排好!!!的9个元素的数组//今输入一个数要求按原来排序的规律将它插入数组中。//样例输入//1781723245962101//50#include<stdio.h>intmain(){inta[10],i,m,t;//因为要插入一个数所以共有十个数下标为10for(i=0;i<9;i++){sca......
  • C语言-文件操作
    在接触文件操作之前,我们写的程序都是在内存中存储着,一旦程序结束内存中存储的数据都会被擦除,所以如果想要程序结束数据仍然要保留,那就需要将其持久化,就需要用文件操作,将需要保留的数据存储在硬盘中。下次使用时再打开即可。那么关于文件主要介绍以下几个部分:什么是文件磁盘上的文件......
  • 包装效果图渲染技巧:怎么用云渲染省钱、省时间
    在今天这个市场竞争白热化的时代,一个产品的包装设计往往决定了它在架上是否能够脱颖而出。因此,品牌在推向市场前精心设计的包装效果图显得尤为重要。在这里,我们将探究包装效果图渲染的关键性、渲染技巧及云渲染技术如何在提升渲染品质与降低成本上发挥其作用。包装效果图渲染的......