-1比sizeof(char)大?

ops/2024/10/23 6:11:14/

下列参数代码的输出:

char *usrName="hello world"
if(-1<sizeof(usrName))
{printf("NG\n");
}
else
{printf("OK\n");
}

正确答案:OK\n

为什么会造成这样的结果,由于进行比较运算时,需要将先将两个数据转换为同一数据类型。
显然上述代码中-1 为int类型,而 sizeof运算符返回值为unsinged long long类型

根据下列两条粗糙的规则,则需要将-1转化为unsigned long long类型

a.若两种类型的字节数不同,转换成字节数高的类型

b.若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型

ps 负数在计算机中的二进制表示是通过正数的二进制补码表示,

1 对int 型的二进制表示 为
00000000 00000000 00000000 00000001
1的反码为
11111111 11111111 11111111 11111110
补码=反码+1
11111111 11111111 11111111 11111111

当把一个低精度的数据类型转成一个高精度的数据类型时,需要位数拓展:
方法1:零位拓展
如果-1转化为unsigned long long类型就会变成2*32-1

方法2:符号位拓展
转换为2^64-1

所以在unsigned long long类型下 -1 >sizeof(usrName)
所以输出结果为OK\n


http://www.ppmy.cn/ops/127756.html

相关文章

爬虫学习——26.JS逆向(2)

AES与DES DES对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者。 和信息的接收者在进行信息的传输与处理时,必须共同持有该密钥(称为对称密码),是一种对称加密算法。一般来说加密用的是encrypt()函数,解密用的是decrypt()函数。 AE…

木木模拟器 MuMuPlayer Pro for Mac 下载安装详细教程(无需激活)

MuMu 安卓模拟器是网易推出的一款可以在 Mac 上安装运行手机软件游戏的模拟器&#xff0c;目前来说在 MAC 上木木是目前最好的选择没有之一&#xff0c;目前经过几次迭代也是支持适配了市面上大多数主流游戏软件。 有需要在 Mac 上安装运行手机游戏的朋友可以参看本文下载安装…

Java面试题库——反射机制

1.Java中什么是反射&#xff1f; 是指在运行状态中&#xff0c;对于任意一个类都能够知道这个类所有的属性和方法&#xff1b; 并且对于任意一个对象&#xff0c;都能够调用它的任意一个方法&#xff1b;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。2…

[实时计算flink]DataStream连接器设置方法

背景信息 如果您通过DataStream的方式读写数据&#xff0c;则需要使用对应的DataStream连接器连接Flink全托管。Maven中央库中已经放置了VVR DataStream连接器&#xff0c;以供您在作业开发时直接使用。您可以通过以下任何一种方式来使用连接器&#xff1a; &#xff08;推荐&…

自动驾驶系列—加速自动驾驶系统开发:多型号SoC快速适配的最佳实践

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

利用 Direct3D 绘制几何体—7.编译着色器

在 Direct3D 中&#xff0c;着色器程序必须先被编译为一种可移植的字节码。接下来&#xff0c;图形驱动程序将获取这些字节码&#xff0c;并将其重新编译为针对当前系统 GPU 所优化的本地指令 [ATI1]。我们可以在运行期间用下列函数对着色器进行编译。 HRESULT D3DCompileFrom…

Aurora 4.6.2 | 第三方谷歌商店,无需谷歌框架

Aurora Store是谷歌Play Store的一个非官方FOSS客户端&#xff0c;通常称为‘极光商店’&#xff0c;设计优雅。Aurora Store不仅可以下载、更新和搜索Play Store等应用程序&#xff0c;还为用户提供了新功能。应用提供范围广泛的游戏和应用程序&#xff0c;包括音乐流媒体、购…

JMeter与大模型融合应用之JMeter创建二级菜单的简单大模型交互

JMeter与大模型融合应用之JMeter创建二级菜单的简单大模型交互 需求描述 我们需要实现如下业务 1.在JMeter的一级菜单下面&#xff0c;生产一个AI Assistant的二级菜单 2.点击AI Assistant能够弹出AI助手弹框 3.输入内容以后&#xff0c;大模型能够进行回答 业务实现 增加…