当前位置: 首页> 教育> 大学 > 品牌网络推广方式_国外产品推广平台_免费制作小程序平台_百度网盟推广

品牌网络推广方式_国外产品推广平台_免费制作小程序平台_百度网盟推广

时间:2025/7/9 5:35:32来源:https://blog.csdn.net/sz66cm/article/details/145926364 浏览次数:0次
品牌网络推广方式_国外产品推广平台_免费制作小程序平台_百度网盟推广

题目

在这里插入图片描述

C 代码

#define U32_MIN (0x80000000)
#define U32_MAX (0x7FFFFFFF)int can_shift(int val, int offset) {int i = 0;int old_val = 0;if (val == 0) return 0;if (val > (1 << 30)) return 0;for (i = 0; i < offset; i++) {old_val = val;if (val > ((1 << 30) - 1)) return 0; //1. 注意限制左移的越界大小问题,因为0x40000000左移1位也会越界,所以需要解决它;val = (val << 1);val &= 0x7FFFFFFF;if (val == 0) return 0;if (val < old_val) return 0;}return 1;
}int divide(int dividend, int divisor) {int i = 0;int ret = 0;int sign = 0;int one = 0;int maps[32] = {0};if (dividend == divisor) return 1;if (divisor == 1) return dividend;if (divisor == -1) {if (dividend == U32_MIN) {return U32_MAX;} return -dividend;}if (dividend < 0) {if (dividend == U32_MIN) {dividend = U32_MAX;one = 1;} else {dividend = -dividend;one = 0;}sign ^= 1;}if (divisor < 0) {if ( divisor == U32_MIN) {return 0;}divisor = -divisor;sign ^= 1;}if (divisor > dividend) return 0;for (i = 30; i >= 0; i--) { // 2. 注意点:全都不可以移位,但是满足直接减的情况漏掉了,也就是maps[0]的部分;所以把maps[0]部分单纯抽出来处理if(can_shift(divisor, i) == 0 && i != 0) {maps[i] = 0;continue;}while ( 1 ) {if ( dividend >= ((divisor << i) - one) ) {dividend -= (divisor << i);maps[i] += 1;} else {break;}}}ret = maps[0];for (i = 1; i < 32; i++) { ret += (maps[i] << i);}return (sign == 0) ? ret : -ret;
}
关键字:品牌网络推广方式_国外产品推广平台_免费制作小程序平台_百度网盟推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: