一个byte由八个位组成,符号位 + 数值位,如x0000000,其中第1位是符号位,后面的7位表示数值,第1位是符号位(0为正,1为负)。这样+1就是00000001,-1就是10000001。最大的正数就是0 1111111,即20+ 21+……+26=127;最小的负数,同理,为1 1111111,即==-127==。
到这里可能有小伙伴开始纳闷了明明是-127那怎么变成-128了呢。

那我们重新来次。
1、负数的绝对值是反码,byte为一字节8位,最高位是符号位,即最大值是01111111,因正数的补码是其本身,即此正数为01111111十进制表示形式为127
2、最大正数是01111111,最小负数11111111的反码10000000
3、因为负数的补码是其绝对值取反,即10000000为最小负数的绝对值,这个1既是符号位也是数值位,而10000000的十进制表示是128,所以最小负数是-128
4、由此可以得出byte的取值范围是-128到+127
同理可以推出short和int等。。。。

在计算机中程序都是按照补码运行的。而且0有+0和-0两种。

知识拓展

在计算机内,定点数有3种表示法:原码、反码和补码。
所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
表示方法:
1、原码的表示:在数值前直接加一符号位的表示法。
2、反码的表示:
(1)正数:正数的反码与原码相同。
(2)负数:负数的反码,符号位为“1”,数值部分按位取反。
3、补码的表示:
(1)正数:正数的补码和原码相同。
(2)负数:负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取反后再在末位(最低位)加1。也就是“反码+1

怎么计算byte,short,int等数据类型的取值范围相关推荐

  1. 计算char,short,int,long类型变量的取值范围

    源自<The C Programming Language>P28 pr2-1: 编写一个程序以确定分别由signed及unsigned限定的char,short,int,long类型变量 ...

  2. 请编写一个c程序确定signed,unsigned的char,short,int和long变量取值范围

    way1: 通过打印标准的头文件中的相应的值来完成 符号常量 表示 CHAR_BIT char 的位数 CHAR_MAX char 的最大值 CHAR_MIN char 的最小值 SCHAR_MAX ...

  3. int型数据类型为什么取值范围是-2^31~2^31-1

    正数在计算机中表示为原码,最高位为符号位: 1的原码为0000 0000 0000 0000 0000 0000 0000 0001 2147483647的原码为0111 1111 1111 1111 ...

  4. int和long类型取值范围。 基本数据类型 byte , short , char ,int , long , float ,double,boolean类型取值范围

    int和long类型取值范围. 1. int类型 ---------4字节(32位) ​ ------------------------------------------------------- ...

  5. java将一个整数按字节输出_在java中的整数类型有四种,分别是 byte  short int long 其中byte只有一个字节 0或1,在此不详细讲解。其他的三种类型如下:1、...

    在java中的整数类型有四种,分别是 byte  short int long 其中byte只有一个字节 0或1,在此不详细讲解. 其他的三种类型如下: 1. 基本类型:short 二进制位数:16 ...

  6. int数据类型的取值范围

    int取值范围 总所周知int类型在计算机中占4个字节.4*8=32位,因此int类型数据的取值范围为:-231 ~ 231-1 即:-2147483648 - 2147483647,那么这是如何得来 ...

  7. Java中数据类型的取值范围

    整数数据类型的取值范围 我们都知道计算机的底层是二进制,也知道不同的整数类型存储值的范围不同,可这些数值在计算机底层是怎样存储的呢?数值范围又是怎么计算出来的呢? 下面以java来进行举例: byte ...

  8. java存储整数,用于存储整数数值的是 JAVA四种整数数据类型的取值范围分别是多少...

    JAVA四种整数数据类型的取值范围分别是多少 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的1 ...

  9. C语言——数据类型、基本数据类型的取值范围

    目录 一.数据类型 1.基本类型 2.sizeof运算符 3.signed和unsigned 二.取值范围 1.比特位 2.字节 3.符号位 4.补码 5.基本数据类型的取值范围 一.数据类型 1.基 ...

最新文章

  1. 技术图文:Python 匿名函数 VS. C# Lambda表达式
  2. ETL工具框架开源软件
  3. C#设计模式之:抽象工厂模式与反射
  4. qt designer 自定义插件找不到指定的模块_SpringBoot之spring-boot-load模块
  5. SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍试读版
  6. Java on Windows Mobile
  7. 2017.10.1 互不侵犯king 思考记录
  8. 正则表达式匹配连续相同字符
  9. Android TV 开发(5)
  10. javascript中eval解析JSON字符串
  11. 计算机屏显内容超过屏幕了,电脑屏幕超出工作频率范围修复方法
  12. word 单页、多页面旋转
  13. JAVA串口通信开发
  14. 盒子拖拽效果,原生js实现
  15. 浅谈面向对象和面向过程
  16. 跨专业保研浙大计算机,保研经验:排名第一,论文两篇,七项专利,两个国家级大创,夏令营斩获多个offer,成功上岸985!...
  17. 导入mysql文件提示“ASCII '\0' appeared in the statement”
  18. 攻击微软、三星等大型企业的黑客组织LAPSUS$成员被逮捕
  19. C语言-假设有一对兔子,出生第二个月变成了一对大兔子,第三个月后变成一对老兔子, 并开始每月出生一对小兔子,依次类推。求15个月内共有多少对兔子?
  20. MTU MSS 设置对网络环境的影响

热门文章

  1. PHPRunner 10.7.0 PHP代码生成器
  2. 安科瑞企业综合能效管理系统 时丽花
  3. Linux和windows之间文件传输
  4. 测试常用的理论知识总结
  5. 二叉树的非递归遍历(java)
  6. STM32软件学习笔记(一)基于HAL库的STM32F429单片机串口打印程序
  7. zemax---中英文名词对照表(持续更新中)
  8. 制作TEC数据集的步骤
  9. 【Oracle】 sql 中的字符(串)替换与转换
  10. 基于51的多功能小风扇,可以实现定时,摇头,超声波自动调速等功能