如题,此篇文章是描述C语言中的整数谜题。

假定机器字长是32位的,用2的补码表示整数。对以下C表达式,请问它们在所有情况下都正确吗?如果不是,请给出反例。

初始化:

1
2
3
4
int x = foo();
int y = bar();
unsigned ux = x;
unsigned uy = y;

1. 若x < 0, 则x * 2 < 0

2. ux >= 0

3. 若x & 7 == 7, 则(x << 30) < 0

4. ux > -1

5. 若x > y, 则-x < -y

6. x * x >= 0

7. 若x > 0 && y > 0, 则x + y > 0

8. 若x >= 0, 则-x <= 0

9. 若x <= 0, 则-x >= 0

答案如下:

1. 错。当x = INT_MIN

2. 正确。

3. 正确。

4. 错。-1被转换成UINT_MAX

5. 错。当x = -1, y = INT_MIN

6. 错。当x = 65535

7. 错。INT_MAX 和 INT_MAX

8. 正确。

9. 错。INT_MIN

C 语言整型谜题的更多相关文章

  1. C语言---整型字符串转换

    C语言提供了几个标准库函数,能够将随意类型(整型.长整型.浮点型等)的数字转换为字符串.下面是用itoa()函数将整数转 换为字符串的一个样例: # include <stdio.h>   ...

  2. 【C语言入门教程】2.3 整型数据

    没有小数位或指数的数据类型被称为整型数据,根据使用方法的分类,整型数据可分为整型常量和整型变量.根据定义或显示的数制分类,可分为十进制.八进制和十六进制. 2.3.1 整型常量 整型常量是在运算中不可 ...

  3. 2016年11月3日JS脚本简介数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6.布尔型数据:bool 7.对象类型:object 8.二进制:binary 语言类型: 1.强类型语言:c++ c c# java 2.弱类型语

    数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6 ...

  4. Go语言类型(布尔、整型、数组、切片、map等)

    1.基本类型 布尔类型:bool 注意:布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换. 整型:int8.byte(uint8).int16.int.uint.uintptr int.ui ...

  5. [日常] Go语言圣经--作用域,基础数据类型,整型

    go语言圣经-作用域 1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量 2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是 ...

  6. C语言的整型溢出问题

    整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视.整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一 ...

  7. Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型

    ylbtech-Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型 1.返回顶部 1. 整型数值类型(C# 参考) 2019/10/22 “整型数值类型”是“简单类型”的 ...

  8. 【C语言】整型在内存中的存储

    整型在内存中的存储 1.整型的归类 char short int long 以上都分为有符号(signed)与无符号(unsigned)的类型 2.原码.反码和补码 2.1 定义 计算机在表示一个数字 ...

  9. GO语言学习——基本数据类型——整型、浮点型、复数、布尔值、fmt占位符

    基本数据类型 整型 整型分为以下两个大类: 按长度分为:int8.int16.int32.int64 对应的无符号整型:uint8.uint16.uint32.uint64 其中,uint8就是我们熟 ...

随机推荐

  1. 提高Mxd地图渲染出图效率的方法

    测试 在ArcGIS地图渲染非常耗时,特别是标注较多时,下面是做的一些性能测试   小结 1.地图渲染的数据量是显示出图速度的关键.主要注意: (1)与数据库存储的数据量关系不大.例如数据库有1万条数 ...

  2. spring boot使用slf4j输出日志

    spring boot使用slf4j输出日志 https://blog.csdn.net/qq442270636/article/details/79406346 Spring Boot SLF4J日 ...

  3. Asp.Net下通过切换CSS换皮肤

    直接重写Render事件 protected override void Render(System.Web.UI.HtmlTextWriter writer) { StringWriter sw = ...

  4. vsphere 处理NUMA

    vsphere 4.1 之前: cpu调度会将一个VM的分配给一个home node,整个vm被看做一个NUMA client. 如果VM的vCPU数量超过一个NUMA node的可用数量,则不被看做 ...

  5. Java和Javac的使用时总提示找不到类模块的解决方案

    1.场景: 争对网上的很多文章中javac编译与java运行的文章,有很多不明确的地方,使得在合适时发现很多坑.这里给大家作下简介. 2.Javac的使用注意: javac -d ./ ./Insta ...

  6. CentOS下Crontab安装使用详细说明(转)

    来自:http://www.centoscn.com/CentOS/help/2014/1220/4346.html crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的 ...

  7. NIO SelectionKey attachment()空指针错误

    Channel注册到Selector时添加了一个Object: serverSocketChannel1.register(selector, SelectionKey.OP_ACCEPT, num[ ...

  8. NGUI 降低drawcall

    前置说明一: Unity中的drawcall定义: 每次引擎准备数据并通知GPU的过程称为一次Draw Call. Unity(或者说基本全部图形引擎)生成一帧画面的处理过程大致能够这样简化描写叙述: ...

  9. top命令参数

    参数说明 d 指定每两次屏幕信息刷新之间的时间间隔.当然用户可以使用s交互命令来改变之. p 通过指定监控进程ID来仅仅监控某个进程的状态. q该选项将使top没有任何延迟的进行刷新.如果调用程序有超 ...

  10. java 第一个java程序

    public class Test16{ public static void main( String args[] ) { System.out.println ("welcome to ...