在C语言中,int型数据的取值范围?
在C语言中,int型数据所占的字节和具体的编译器有关,32位编译器int占4个字节(VC,C-free),16位编译器int占2个字节(详见“int型数据所占字节和什么有关”)。
以两个字节为例:
在C中,int型数据是一个有符号的整型数据,其最高位为符号位(0表示正,1表示负)
1个字节等价于8个二进制位,在很多计算机系统中,通常采用补码来表示带符号的数(补码系统)
现在从二进制的原码,反码,补码开始讨论……
原码:最高位为符号位(0表示正,1表示负),其他位按照一般的方法来表示数的绝对值
反码:对于一个带符号的书来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反
补码:正数的补码与其原码相同,负数的补码为其反码在最低位加1
两个字节,所以,二进制原码最大为0111 1111 1111 1111 = 2^15 - 1 = 32767
最小为1111 1111 1111 1111 = - (2^15 - 1) = -32767
原码中0的表示有正负之分[+0]原 = 0000 0000 0000 0000;[-0]原 =1000 0000 0000 0000
所以二进制原码表示时,范围是 -32767 ~ -0和0~32767,因为有两个0,所以不同的数值个数一共有2^16 - 1个
而计算机采用而进驻补码存储数据时,0的表示是唯一的:[+0] 补= [-0] 补= 0000 0000 0000 0000
此时正数编码不变,从0000 0000 0000 0000 ~ 0111 1111 1111 1111依然表示0 ~ 32767,
负数表示需依照补码规则,即-32767的补码为1000 0000 0000 0001
所以补码中会比原码多一个编码出来,这个编码就是1000 0000 0000 0000,因为任何一个原码都不可能在转化成补码时变成1000 0000 0000 0000,所以人们规定1000 0000 0000 0000这个补码编码为-32768
综上所述,int型数据占两个字节时,可表示2^16种变化,最高位为符号位,所以正负有2^15中变化,因为0也占一种,因此正负数的最大值并不对称,即该int型数据取值范围为-32768 ~ 32767
在C语言中,int型数据的取值范围?相关推荐
- c语言用int取整取了小数_[c语言取整算法]C语言中float型数据怎么取整数部分算法或取小数部分...
C语言中float型数据怎么 取整数部分算法 或取小数部分 float福n=12.223; int x=(int)n; float y=n-(float)x; C语言有哪些取整函数? C语言有以下几种 ...
- c语言int作用,c语言中int的用法有哪些
c语言中int的用法有哪些 C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同下面小编给大家整理了c语言中int的用法 ...
- c语言中int作用,c语言中int的用法(5页)-原创力文档
第 第 PAGE 1 页 共 NUMPAGES 1 页 c语言中int的用法 C/C++编程语言中,int表示整型变量,是一种数据类型,下面小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. ...
- c语言double类型是几字节,c语言中int long float double 等类型所占字节及输出表示(转)...
16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 doub ...
- 在c语言中char型数据在内存中的储存形式为什么
在c语言中char型数据在内存中的储存形式为"ASCII码".在C语言中,将一个字符常量放到一个字符变量中,实际并不是把该字符本身放到内存单元中,而是将与该字符相对应的ASCII码 ...
- int在c语言中的作用,C语言中int,Uint,uint16等有什么区别以及用处
C语言中int,Uint,uint16等有什么区别以及用处.在C中,既然有了int,为什么还要有uint?特别是uint16,uint32等又有什么用?他们有什么区别?" --------- ...
- 在c语言中 char型数据在内存中的存储形式是,在c语言中char型数据在内存中的存储形式是什么?...
在c语言中char型数据在内存中的存储形式是ASCII码.在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单 ...
- c语言int作用,c语言中int的用法
C/C++编程语言中,int表示整型变量,是一种数据类型,下面学习啦小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. c语言中int的用法:整型int C 语言提供了很多整数类型(整型), ...
- C语言中int、long等类型所占的字节数
C语言中int.long等类型所占的字节数.实验环境是win10,64位操作系统. #include<stdio.h> int main() {printf("sizeof(in ...
最新文章
- 引导加载程序之争: LILO 和 GRUB
- mxnet arg_params, aux_params
- python自学教材-python零基础自学教材
- 细说SSO单点登录(转)
- c 调用c语言形参为double,C学生作业,’%f’需要’float *’类型的参数,但参数2的类型为’double *’...
- OpenCV相机校准camera calibration的实例(附完整代码)
- 正则表达式小应用之对xml格式字符串每个字段加双引号
- 可交互的 Attention 可视化工具!我的Transformer可解释性有救了?
- win10 tensorflowgpu-2.0安装cuda10.0 +cudnn7.4
- magento2 后台Grid点击column进行排序时会出现单个重复record
- [Java] 蓝桥杯ALGO-11 算法训练 瓷砖铺放
- Hadoop:Hadoop简介及环境配置
- Linux C++,使用log4cpp记录日志示例详解
- 关于使用response.addCookie 添加失败
- 《如何有效阅读一本书》:读再多书,不如先学会如何读书
- 15s是什么意思c语言,15s是什么意思
- P1397 [NOI2013] 矩阵游戏(矩阵乘法欧拉定理)
- 用行列式的定义方法求解n阶行列式的值(C++)
- python123怎么注销账号_怎么注销账号
- 飞行对小鸟来说压力很大吗?
热门文章
- Python在命令行模式下如何退出命令行
- 根据身份证获取出生日期
- 不同dom的blur事件和click事件发生冲突
- C++ Reference: Standard C++ Library reference: C Library: cstdio
- 树莓派实验室python人脸识别_使用树莓派进行简易人脸识别
- python-函数(function)
- 梯度下降—Python实现
- Maximum length exceeded错误的解决办法
- 如何将png图片转为heif格式
- Python 中File(文件) 方法?