【C语言中如何表示无穷大】
0x3f3f3f3f表示无穷大
许多时候我们可能需要设置一个无穷大的变量,最严谨的办法当然是对无穷大进行特别处理而不是找一个很大很大的常量来代替它(或者说模拟它),但是这样会让我们的编程过程变得很麻烦,最精巧的无穷大常量取值是0x3f3f3f3f
。
0x3f3f3f3f
的十进制是1061109567,也就是10^9级别的(和0x7fffffff
一个数量级),而一般场合下的数据都是小于他的,所以它可以作为无穷大使用而不致出现数据大于无穷大的情形。
另一方面,由于一般的数据都不会大于10^9,所以当我们把无穷大加上一个数据时,它并不会溢出(这就满足了“无穷大加一个有穷的数依然是无穷大”),事实上
0x3f3f3f3f
+0x3f3f3f3f
=2122219134,这非常大但却没有超过32-bit int的表示范围,所以0x3f3f3f3f
还满足了我们“无穷大加无穷大还是无穷大”的需求。最后,
0x3f3f3f3f
还能给我们带来一个意想不到的额外好处:如果我们想要将某个数组清零,我们通常会使用memset(a,0,sizeof(a))这样的代码来实现(方便而高效),但是当我们想将某个数组全部赋值为无穷大时(例如解决图论问题时邻接矩阵的初始化),就不能使用memset函数而得自己写循环了(写这些不重要的代码真的很痛苦),我们知道这是因为memset是按字节操作的,它能够对数组清零是因为0的每个字节都是0,现在好了,如果我们将无穷大设为0x3f3f3f3f,那么奇迹就发生了,0x3f3f3f3f的每个字节都是0x3f!所以要把一段内存全部置为无穷大,我们只需要memset(a,0x3f,sizeof(a));
0xc0c0c0c0 = -1061109568; 0x3f3f3f3f = 1061109567;
【C语言中如何表示无穷大】相关推荐
- R语言中的特殊值 NA NULL NaN Inf
这几个都是R语言中的特殊值,都是R的保留字, NA:Not available 表示缺失值 用 is.na() 来判断是否为缺失值 NULL:表示空值,即没有内容 用 is.null() 来判 ...
- C语言中如何表示无穷,C语言中正无穷大怎么表示
推荐回答 C语言中没有无穷大的数据类型,一般的整数最大值使用INT_MAXint表示.极限头文件limits.h专门用于检测整型数据数据类型的表达值范围.要判断某种特定类型可以容纳的最大值或最小值,一 ...
- mysql 怎么表示正无穷_C语言中正无穷大怎么表示
展开全部 C语言中没有无穷大的数据62616964757a686964616fe59b9ee7ad9431333431366238类型,一般的整数最大值使用INT_MAX int表示. 极限头文件li ...
- C语言中数据在内存中的存储
要想了解数据在内存中的存储的话,首先应该了解数据的类型. 下面介绍C语言中数据类型: 1.C语言中的基本内置类型: char //字符数据类型 大小为1个字节 short //短整型 大小为2个字节 ...
- 邻接矩阵中啥时候写0和无穷_带权有向图的邻接矩阵中0和无穷大
信息举报 时间:2020-12-23 本页为您甄选多篇描写带权有向图的邻接矩阵中0和无穷大,带权有向图的邻接矩阵中0和无穷大精选,带权有向图的邻接矩阵中0和无穷大大全,有议论,叙事 ,想象等形式.文章 ...
- Go 知识点(19)— Go 语言中的野指针
野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...
- c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题
代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...
- 单片机c语言中的循环语句,单片机c语言教程:C51循环语句
循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...
- python调用什么函数实现对文件内容的读取_如何使用python语言中的方法对文件进行读写操作...
在我们使用python语言中的文件时,可以使用open()方法打开文件,close()方法关闭文件,read()方法读取文件内容,write()方法写入内容到文件中.下面利用几个实例说明文件读写方法, ...
最新文章
- 团队项目个人进展——Day10
- 集成 Kendo UI for Angular 2 控件
- cubemx pwm dma_红米K30S至尊纪念版翻车?被曝虽是LDC屏,却是PWM调光
- 没被同事卷死,被司机卷死了...
- DL之DNN优化技术:利用Batch Normalization(简介、入门、使用)优化方法提高DNN模型的性能
- 《大型网站技术架构》1:概述
- python编写下载器可暂停_Python编写一个优美的下载器
- 网络监听Network Daemon(Android Netd)架构和源码分析网络监听
- linux硬盘检测工具下载,硬盘健康检测软件(HDSentinel Linux服务器版)
- MATLAB拟合优度检验
- 不用任何插件:小白如何白嫖百度网盘下载速度(不好用来打我,嘿嘿)
- 相乘函数计算机表示符号,excel乘积函数_excel相乘函数使用方法
- AI笔记: 数学基础之反函数和6个基本初等函数
- VC6.0 编译出现fatal error C1083
- Laravel5利用163邮箱实现发送邮件mail功能
- TS - 勉强入个门儿
- 云计算时代的技术架构与开发模式
- C++中atan()与atan2()的区别和用法
- python制作网页难吗_怎么做网页制作(用python做网页与html)
- rpm包安装linux系统,包管理 ----- Linux操作系统rpm包安装方式步骤