当前位置:主页 > c/c++教程 > 基本数据类型中int、long等整数类型取值范围及原理

C++ 基本数据类型中int、long等整数类型取值范围及原理分析

发布:2023-03-10 14:00:01 59


给大家整理一篇相关的编程文章,网友董斯雅根据主题投稿了本篇教程内容,涉及到C++、基本数据类型、基本数据类型int、基本数据类型long、整数类型取值范围、基本数据类型中int、long等整数类型取值范围及原理相关内容,已被583网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

基本数据类型中int、long等整数类型取值范围及原理

基础知识

计算机中所有的整数都是以补吗的形式存储的。

正数的补码与原码相同,负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1。零分为+0和-0。

C++ 整数类型及所占内存

取值范围计算

无符号类型

以一个4位二进制举例

全部为数据位。4位二进制编码:0000-1111共8种,所以能表示0-7(23-1)。

总结:对于有符号类型,如果是n位,则表示范围为 0 - 2n-1。 

有符号类型

以一个4位二进制举例

如果以原码表示:对于有符号类型,最高位是符号位,剩下的4-1=3位是数据位。所以数据为最多有8种编码情况。000-111所以取值范围为:-7(23-1)~-0和+0到+7,共15个数字。

计算机实际以补码形式存储整数。

  • 对于正数,补码与原码相同,范围依旧是+0到+7(23-1)。
  • 对于负数,补码是对其原码逐位取反,但符号位除外;然后整个数加1。
  • -7的二进制原码:1111,所以补码为:1001。
  • -1的二进制原码:1001,所以补码为:1111。
  • -0的二进制原码:1000,所以补码为:0000。与+0相同。(所以用它来表示个其他数吧)

没有任何数的补码是:1000这个编码。所以多出来了。所以,规定1000这个补码编码为-8。

综上:4位二进制在计算机中,表示数据的范围:-8(23)-7(23-1)。

总结:如果有符号类型数据部分占n位,则表示范围为 -2n - +2n。

基本数据类型中int、long等整数类型取值范围

以上为个人经验,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

  • 一文搞懂C++中的运算符重载

    发布:2023-03-02

    这篇文章主要为大家详细介绍了C++中的运算符重载的相关资料,文中的示例代码讲解详细,对我们学习C++有一定帮助,需要的可以参考一下


  • Java C++题解leetcode856括号的分数

    发布:2023-03-05

    这篇文章主要为大家介绍了Java C++题解leetcode856括号的分数实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • 提高C++程序运行效率的10个简单方法

    发布:2023-01-03

    为网友们分享了关于C++的教程,这篇文章主要介绍了提高C++程序运行效率的10个简单方法,包括了循环、变量、继承等等应用的技巧,非常具有实用价值,需要的朋友可以参考下


  • C++11 成员函数作为回调函数的使用方式

    发布:2023-03-10

    这篇文章主要介绍了C++11 成员函数作为回调函数的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • C++递归算法处理岛屿问题详解

    发布:2023-03-03

    这篇文章主要介绍了用递归算法解决岛屿问题的流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧


  • C++中对象的常引用、动态建立和释放相关知识讲解

    发布:2022-10-20

    给大家整理一篇关于C++的教程,这篇文章主要介绍了C++中对象的常引用、动态建立和释放相关知识讲解,是C++入门学习中的基础知识,需要的朋友可以参考下


  • C++实现会员管理程序的具体方案

    发布:2021-06-01

    这篇文章主要为大家详细介绍了C++实现会员管理程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • c++只保留float型的小数点后两位问题

    发布:2023-03-12

    这篇文章主要介绍了c++只保留float型的小数点后两位问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


网友讨论