如下函数,在32bit系统foo(2^31-3)的值是

完整且详细的C语言教程,从入门到精通(2.1)--C语言关键字(C89标准下的数据类型、IEEE 754 标准、大小端、pragma pack) 数据类型(12个):char short int long float double signed unsigned struct union enum void 阅读详情

如下函数,在32bit系统foo(2^31-3)的值是:


Int foo(int x)
{


return x&-x;


}


A: 0 B: 1 C:2 D:4
2与31异或,10与11111异或后得11101,3为11,11101-11=11010

-11010相当于11010取反加1为00110

11010&00110=10,结果为2

******************************************************************************

验证:

#include<stdio.h>
#include<math.h>

int fun(int x)
{
	return x&-x;
}

int main()
{
	printf("%d\n",fun(2^31-3));
	printf("%d\n",fun(pow(2.0, 31)-3));

	return 0;
}


结果:

2

1



编译器优化:常量除法的高效实现与64位CPU加速 在计算机体系结构中,除法运算因其较高的计算成本一直是性能优化的重点。当除数为常量时,现代编译器采用魔术数(Magic Number)技术,将除法转换为更高效的乘法和位移操作序列。这项技术基于Granlund和Montgomery提出的数学原理,通过精心选择的魔术数c和位移量a,实现x/d到(x*c)>>a的等价转换。在64位CPU架构上,这种优化可以充分利用64位寄存器的宽度,通过64x64→128乘法指令直接获取结果的高64位,显著提升性能。该技术特别适用于32位无符号整数除法场景,在x86-64和ARM 阅读详情

相关推荐

SQL Server 2025在Windows 11上的安装避坑指南

SQL Server 是微软主流关系型数据库管理系统,其安装与Windows操作系统深度耦合;Windows 11作为新一代桌面平台,强化了基于虚拟化的安全(HVCI)、驱动签名强制策略(WDAC)及内核隔离机制,导致传统数据库部署流程失效。理解二者底层交互原理,是解决服务启动失败、配置管理器无法打开、远程连接被拒等高频问题的技术前提。本文聚焦SQL Server 2025与Windows 11的兼容性挑战,覆盖系统预配置、安装节点诊断、防火墙与服务权限调优等工程实践环节,适用于高校教学、电赛备赛、中小企业

weixin_28741413的博客 318

10道C++输出易错笔试题收集

下面这些题目都是我之前准备笔试面试过程中积累的,大部分都是知名公司的笔试题,C++基础薄弱的很容易栽进去。我从中选了10道简单的题,C++初学者可以进来挑战下,C++大牛也可以作为娱乐玩下(比如下面的第6题)。为了便于大家思考,将题目与答案分开,不过无论题目本身如何,我觉得后面的解析过程更值得学习,因为涉及很多我们学习C++过程中必知必会的小知识点 。第一部分:题目如下函数,在32 bit系统foo

writeeee的专栏 1118

迈德威视相机调用( 基于 Linux系统+ OpenCV )

迈德威视相机调用( 基于 Linux系统+ OpenCV )前言一、登录迈德威视官网,下载官方SDK二、代码调用与视频帧处理( 基于 OpenCV )总结 前言     此博客记录了迈德威视工业相机在 Linux 系统下的代码调用及其环境配置,通过 OpenCV 对视频帧进行处理。   一、登录迈德威视官网,下载官方SDK      迈德威视官网 : http://www.mindvision.com.cn/     1. 进入官网后,在服务支持中选择软件下载。    2. 选择Linux系统S.

kkkkkk0729的博客 5678

c语言常用符号优先级问题,【C语言】符号优先级

一. 问题的引出今天看阿里的笔试题,看到一个非常有意思的题目,但是很容易出错。题目:如下函数,在32bit系统foo(2^31-3)的值是:Int foo(int x){return x&amp;-x;}解答:如果想要答对这道题目,首先要清楚C语言中符号的优先级别,负号(-)的优先级高于^,所以2^31-3=2^28,还有一个陷阱就是C语言中认为^为异或运算而不是幂函数,所以2^28=30,然后计...

weixin_29563497的博客 1924

Obsidian + AI 自动知识管理:手把手教程

装完后,在命令面板(Ctrl+P)搜 "Generate Summary",AI 会在当前笔记末尾追加一段摘要。你一个月前写的、现在想快速回顾的笔记长篇笔记(三千字以上)开会记录这类信息密集的内容过度自动化。有人装上插件后,所有笔记都让 AI 打标签、写摘要、找关联。最后笔记库看起来整整齐齐,但全都是 AI 的链接,你自己完全没参与。这样做的后果是什么?你写过的笔记跟你没有"真实连接"。你还是记不住。你还是不知道自己的知识库里有什么。AI 推荐,你决策。

weixin_43571227的博客 748

LangChain Message 官方文档

消息是聊天模型中的基本通信单位。它们用于表示聊天模型的输入和输出,以及与对话相关的其他上下文或元数据。每条消息都包含一个角色(如“用户”、“助手”)和内容(如文本或多模态数据),并可能包含根据不同聊天模型提供商而有所不同的附加元数据。LangChain 提供了一个统一的消息格式,可以跨不同聊天模型使用,简化用户在不同模型之间切换时所需关注的消息格式差异。

AI Agent 首席体验官 896

32bits系统中foo(2^31-3)的值

题目:int foo(int x){ return  x & -x } 其中2^31-3=2147483645;二进制为01111 11111 11111 11111 11111 11111 01                                     取反二进制为10000 00000 00000 00000 00000 00000  11 则结果为 x

wangzhaotongalex的专栏 2572

从零开始利用MATLAB进行FPGA设计(六)用ADC采集信号教程1

用AN9238采集信号的方法(1),包含PLL、FIFO、ILA的基础教程。

WZT725的博客 3094

阿里研发一笔试题foo(2^31-3)

这是2014阿里研发笔试题 怎么解? 步骤:    【1】2^31-3这个表达式看成2的31平方减3就错了。实质^是异或 ,—比^优先级高,所以2^(31-3)=2^28=30    【2】foo(30):                   return 30 & -30;                          30:0001 1110           -30补码

自留地 2372

Android Treble 简介

上面两段话来自官网上,Android 8.0 重新设计了 Android 操作系统框架(在一个名为“Treble”的项目中),以便让制造商能够以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。本文主要整理一下Android Treble框架。

私房菜 9273

RK356x U-Boot研究所(命令篇)3.7 pci与nvme命令的用法

RK356x U-Boot研究所(命令篇)3.7 pci与nvme命令的用法

Systemcall名屋 2084

腾讯笔试模拟题(int foo[]={1,2,3,4,5,6};cout << (1+3)[foo]-foo[0]+(foo+1)[2])

#include using namespace std; int main() { int foo[] = {1,2,3,4,5,6}; cout return 0; } 程序运行结果为:8 因为不理解[foo]是什么意思,就把是输出各项拆开 (1+3)[foo]的输出:5 foo[0]的输出:1 (foo+1)[2]的输出:4 结果为5-1+4=8.

eurus_5bb67476的博客 991

Python爬虫终极指南:异步爬虫+Playwright逆向,高效爬取携程旅游数据

Playwright解决动态渲染和加密参数难题,模拟真实浏览器环境;aiohttp异步提升抓取效率,结合代理池和并发控制规避风控;指纹伪装、行为模拟等技巧大幅降低被检测概率。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2950

阿里2014软件研发部笔试题_14

题目如下: 14、如下函数,在32bit 系统foo(2^31-3)的值是: int foo(int x) {     return x&-x; } A.0    B.1     C.2     D.4   题目解析:在C++中,没有幂指数的运算符,求一个数的幂使用pow(x,y)来实现的,所以此处的x^y指的是x与y的异或运算。 题中将2^31-3整体带入函数内,可得到 re

u011848617的专栏 1015

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

一道阿里巴巴笔试题

http://blog.youkuaiyun.com/hehainan_86/article/details/11826905 今天看了阿里的一道笔试题: 如下函数,在32bit系统foo(2^31-3)的值是: Int foo(int x) { Return x&-x; } A: 0   B: 1  C:2  D:4 也没想那么多,觉得需要借助计算机编程才能得到答案! 事实上呢,看看下

u012730840的专栏 897

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

面试题-计算机基础

1、如下函数,在32bit系统foo(2^31-3)的值是( )        int foo(int x){ return x&amp;amp;-x;}拿到这道题,第一反应2的三十二次方然后-3.......然后发现其实那个^是异或,而且减法的优先级是高于异或的。2^31-3其实是 2^(31-3)-&amp;gt;  00 00000 00000 00000 00000 00000 00010^00 0000...

hello_dlut的博客 2822

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Bit Manipulation常用总结

1.判断奇偶 奇偶数的特征:如果一个数是偶数,则对于其二进制来说,最低位肯定是0;如果一个数是奇数,则对于其二进制来说,最低位肯定是1,因为在二进制表示中,只有 会产生1 所以可以利用这一特征来判断奇偶数 if((num&amp;1) == 0) { //偶数 } else { //奇数 } 注意:不用写为 num&amp;1 == 0 ,这样的判断是错误的,必须给前面...

Jared的博客 1601

将1bpp的bmp图像存储为1bpp或者2bpp的tiff格式

// 将1bpp的位图转换为 1bit/2bit tiff /** 参数: BYTE *src 二值图像的像素数据,不包含头部信息, 1bpp, int src_width 原图的宽度, in pixles, int src_height 原图的高度, in pixles int bpp 转换tiff指定的bpp */ static BYTE * BW2Tif(BYTE *s

菜头 3596

Java Bit Computing

移位运算符包括:     “>> 右移”;“>> 无符号右移” 例子: -5>>3=-1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 1111 其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。 -5 1111 1111 1111 111

江南才子 623

Implementing x / 6 Using Only Bit Manipulations

This is an interesting question from one of the lab assignments in Introduction to Computer Systems, fall 2018 at Peking University. Problem Description Given a 32-bit integer \(x\)(in two's comp...

weixin_30644369的博客 85

PAT笔记之基本知识

基本变量的范围 类型 取值范围 粗略范围 int - 2147483648 ~ +2147483647−231-2^{31}−231 ~ +(231−1)+(2^{31} - 1)+(231−1) −2×109-2 \times 10^9−2×109 ~ 2×1092 \times 10^92×109 long long −263-2^{63}−263 ~ +(263−1)+(...

麻花不好吃 296

PHP7 数组的实现

3). 若此时插入第3个bucket,与第1个和第2个冲突,那么用同样的方式,令nIndex = -3的位置值为3,同时将第3个bucket中zval里面的u2.next值置为2。1). 插入第1个bucket,对应nIdex为-3,那么此时nIndex = -3的位置值为1。2). 若此时插入第2个bucket,与第1个冲突,也就是对应的nIndex也为-3。rehash对应源码中的zend_hash_rehash(ht)方法。rehash不重新申请内存,整个过程是在原有结构上做聚合调整。

weixin_40398522的博客 1322

深入解析ColdFire硬件断点与BDM调试:嵌入式开发的底层利器

在嵌入式系统开发中,调试是定位和解决复杂问题的核心环节。硬件断点作为一种基于处理器内部专用调试硬件的机制,其原理是通过设置地址、数据或程序计数器(PC)的匹配条件,在特定事件发生时中断CPU执行,从而实现无侵入式的精准监控。相较于传统的软件断点或打印日志,硬件断点不修改指令内存,对系统实时性影响极小,技术价值在于能高效捕获诸如内存越界、数据竞争、变量异常修改等隐蔽问题。其典型应用场景包括汽车ECU固件调试、工业控制器实时性能优化以及对时序敏感的高可靠性系统开发。本文以NXP ColdFire系列处理器的调试

aofan9566的博客 484

LeetCode7 整数反转

LeetCode Reverse Integer Python 解法总结 题目解法一解法二 题目 7. Reverse Integer 这道题上过编程课的孩子们应该都见过,唯一tricky的地方是题目对integer的大小进行了限制: Given a 32-bit signed integer, reverse digits of an integer. Assume we are dealin...

167

SV学习记录(五)

本文介绍了SystemVerilog(SV)中面向对象编程(OOP)的核心概念与应用,涵盖类(class)、对象(object)、句柄(handle)、静态变量与方法、作用域规则及对象传递等关键内容。

2401_86318162的博客 341
上一篇: NOJ1114合法日期——趣题,公式,细节
下一篇: 单词博弈——利用map
tcherry
博客等级 码龄16年 46粉丝 161原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值