社区
C++ 语言
帖子详情
数据结构中int的范围是如何得来的??
ddc120
2006-09-09 08:02:03
我是刚开始学习c语言,才半个月,但现在遇到了一个问题,那就是为何int的范围是-32768到32767,这个值是怎么算出来的???大家有没有可以解释这个问题的网站,介绍一下,在此特别感谢!!!
...全文
742
13
打赏
收藏
数据结构中int的范围是如何得来的??
我是刚开始学习c语言,才半个月,但现在遇到了一个问题,那就是为何int的范围是-32768到32767,这个值是怎么算出来的???大家有没有可以解释这个问题的网站,介绍一下,在此特别感谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
a_b_c_abc2
2006-09-10
打赏
举报
回复
这么说吧,TC中的int是16位,可以表示数据2^16=65536个,正数和负数一个一半各32768个,但正数有个0占了个位置,所以只能表示到32767(加上0还是32768个)
举个例子,用4bit表示有符号数,
正数有 0000(0) 0001(1) 0010(2) 0011(3) 0100(4) 0101(5) 0110(6) 0111(7)
负数有 1111(-1) 1110(-2) 1101(-3) 1100(-4) 1011(-5) 1010(-6) 1001(-7) 1000(-8)
负数是用相应正数的反码+1,再加上前面的符号位构成。
比如上面的例子:
10进制的-1用4bit表示为1111,第一位符号位,后面三位,1的编码001,取反为110,再加1为111,
10进制的-6用4bit表示为1010,第一位符号位,后面三位,6的编码110,取反为001,再加1为010,
10进制的-8用4bit表示为1000,是因为这是用4bit表示有符号数所能表示的最小的数,除了符号位1后面全为0,不能更小了。可以从-7减1得到-8。
Duwchy
2006-09-10
打赏
举报
回复
不同意楼上两位。
c中int的长度在不同系统下是不一样的,16位CPU下int的长度是16bit,32位CPU下int的长度是32bit,64位CPU下int的长度是64bit,楼主那个-32768到32767是从哪看到的哦?
==========================================
也不太同意这位的看法,还要看编译器环境的,我的CPU就是64位的,但visual studio 2005 下,int型还是 32 位的,哈;我想楼主的编译环境应该是在TC下的吧。
ddc120
2006-09-10
打赏
举报
回复
谢谢a_b_c_abc2(╰ _ ╯),我对你说的有了点思路了,你有没有专门介绍这方面的网站呢?我想具体的了解一下,我认为你说的是对的。别人如有不同的见解,可以发表自己的理解,谢谢!!!!!!
hyyyyyy
2006-09-10
打赏
举报
回复
根据不同的计算机 是不同的
a_b_c_abc2
2006-09-10
打赏
举报
回复
好象数学中,0既不是正数也不在负数。这里把它看做正数简便点。
fangshengwen
2006-09-09
打赏
举报
回复
2^15-1=32767
ddc120
2006-09-09
打赏
举报
回复
还是不明白,15位的结果不是2^15-1吗???像2进制数1111转换成10进制是2^4-1也就是7,不是吗??
jixingzhong
2006-09-09
打赏
举报
回复
数据范围,
考虑两个因素:
1 数据长度;
2 数据表示方式。
16位环境下(TC), int 是 2字节的,那么就是 16位,
除去一个符号位,
可以表示数据的是 15位;
int 是直接表示数据内容的,
那么就是 -2^15 ~ 2^15-1 ,也就是 -32768到32767
ddc120
2006-09-09
打赏
举报
回复
我没有学过计算机组成原理,不好意思了。我在书上看到int的范围是-32768到32767,书上默认的是16位的。但是16位除了一个符号位应该是15位而结果也应该是-(2^15-1)也就是-32767,可为什么会是-32768呢??我听老师说好像用的是什么补码类的算法,我不太清楚,有知道的在这里说一下,最好能清楚一些,让我们这些新手也了解一下。
i_noname
2006-09-09
打赏
举报
回复
不同意楼上两位。
c中int的长度在不同系统下是不一样的,16位CPU下int的长度是16bit,32位CPU下int的长度是32bit,64位CPU下int的长度是64bit,楼主那个-32768到32767是从哪看到的哦?
bombwang
2006-09-09
打赏
举报
回复
楼上的正解
Duwchy
2006-09-09
打赏
举报
回复
C的int类型为16位,1位符号位,所以范围时-2^15 ~ 2^15-1
晨星
2006-09-09
打赏
举报
回复
计算机组成原理没学过么?
数据结构
与算法学习笔记
本文是王争老师的《算法与
数据结构
之美》的学习笔记,详细内容请看王争的专栏。有不懂的地方指出来,我做修改。
数据结构
与算法思维导图
数据结构
指的是“一组数据的存储结构”,算法指的是“操作数据的一组方法”。
数据结构
是为算法服务的,算法是要作用再特定的
数据结构
上的。 最常用的
数据结构
预算法:
数据结构
:数组、链表、栈、队列、散列表、二叉树‘、堆、跳表、图、Tire树 算法: 递归...
计算机
中
int
和float的储存结构以及运算性能
一、前言 在前不久的转正面谈
中
,提到一个问题:计算机
中
int
和 float 的运行到底那个更快?按想当然的理解,当然是
int
更快,但是我自己也没真正去测试过,不是很清楚,在实际测试后发现结果与想象大不相同。因此,本文记录一下对这个问题的思考与实践。 二、
int
和float的储存结构 要解答这个问题,首先需要知道
int
和 float 的储存结构。
int
和 float 都是4个字节,但存储结构不一样,并且表示
范围
也不一样。紧接着就出现了一个疑问,到底哪些
int
值是 float 不能表示的呢? 2.
数据结构
和算法:什么是
数据结构
,什么是算法
文章标题前言 前言 这几天在复习
数据结构
的
数据结构
(入门必看)
1、学习C语言是如何写程序,学习
数据结构
如何简洁高效的写程序2、遇到一个实际问题,需要写程序,需要解决两个方面的问题1)如何表达数据之间的逻辑规律以及如何将数据存储到计算机
中
数据结构
数据:不是单纯的数值,而是一个类似于集合的概念(结构体(节点))结构:数据之间的关系2)采用什么样的方法来解决问题:算法(冒泡排序、选择排序、顺序查找)
数据结构
+ 算法 = 程序3.
数据结构
数据的逻辑结构、存储结构及操作3.1 数据数据:不是单纯的数值,而是一个类似于集合的概念。
数据结构
——栈的详解
栈和队列是两种重要的线性结构,从
数据结构
的角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表的子集。他们是操作受限的线性表,因此,可称为限定性的
数据结构
。但从数据类型角度看,他们是和线性表大不相同的两类重要的的抽象数据类型。 C语言和C++
中
的栈C语言
中
的栈栈的定义C语言
中
栈的基本操作栈的初始化判断是否为空栈判断是否为满栈入栈出栈C语言实现栈的具体代码C++
中
的栈C++
中
栈的基...
C++ 语言
64,651
社区成员
250,488
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章