最近连续看到两个利用位操作进行整除的代码,感觉特别好,做个笔记。
第一个:某个数除以8(整形数据的整除)。
int a = 9;
int b = a >> 3 << 3; // int b = a / 9;
第二个:
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
注释:先加上int变量大小少1,再将后面的某几位置零。
要理解这个困难点,不过就int变量在32、64位操作系统里都是4字节来看:sizeof(int)-1就是3,二进制:011,取反1...100,所以相当于整除以4。那么这个宏定义就是:变量n无论多少个字节,加上3,再整除4就是n占用内存大小,注意是占用。
根据第二个,联想到小数点四舍五入算法:
保留小数点后2位(四舍五入):float b = ((int)((a * 100) + 0.5)) / 100.0
以前我在excel里常用。
相关推荐
两、三位数除以一位数(首位不能整除)习题.doc
三年级数学上册 首位不能整除的两位数除以一位数教学分析 苏教版 教案.doc
两位数除以一位数(首位不能整除).pdf
c语言习题之一,计算k以内能被13或17整除的自然数之和。在原题的基础上,本题增加了一个条件:即计算复合条件的最大的十个数之和,如果少于十个数,则计算符合条件的数之和
苏教版三上两位数除以一位数(首位不能整除)教学提纲.doc
7位数每位数都不同且可以被每位上的数整除,运行的时间不长
编写一个程序,使用while循环计算1~1000之间能被3和7同时整除的整数之和
计算并输出n(包括n)以内能被3或5整除的所有自然数之和的简单C++程序
给定一个n数(不能被2或5整除),计算由多少个1组成的数可以被其整除
js计算出1000内可以被3,5,7整除的数并输出这些数和数量到网页中
C语言程序设计-计算出k以内最大的10个能被13或17整除的自然数之和;(k〈3000);
青岛版小学三年级数学上册第五单元两三位数除以一位数(一)三位数除以一位数(各数位能整除)教学课件 .pdf
键盘输入一个整数,判断是否被3整除,被5整除,被7整除
# 题目:输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。 # 程序分析:999999 / 13 = 76923。
求出1~1000之间的所有能被7整除的树,并计算和输出每5个的和。
可以用于计算以内被3和7同时整除得数,也可以为被3或者7整除得数!
用java编写的求1到100以内的前5个可以被3整除的数字
三年级上册两位数除以一位数首位不能整除PPT教案.pptx
求100以内能被3整除的数,简单而又实用。
三位数除以两位数-整除-竖式运算300题.doc