怎么计算byte,short,int等数据类型的取值范围
一个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等数据类型的取值范围相关推荐
- 计算char,short,int,long类型变量的取值范围
源自<The C Programming Language>P28 pr2-1: 编写一个程序以确定分别由signed及unsigned限定的char,short,int,long类型变量 ...
- 请编写一个c程序确定signed,unsigned的char,short,int和long变量取值范围
way1: 通过打印标准的头文件中的相应的值来完成 符号常量 表示 CHAR_BIT char 的位数 CHAR_MAX char 的最大值 CHAR_MIN char 的最小值 SCHAR_MAX ...
- int型数据类型为什么取值范围是-2^31~2^31-1
正数在计算机中表示为原码,最高位为符号位: 1的原码为0000 0000 0000 0000 0000 0000 0000 0001 2147483647的原码为0111 1111 1111 1111 ...
- int和long类型取值范围。 基本数据类型 byte , short , char ,int , long , float ,double,boolean类型取值范围
int和long类型取值范围. 1. int类型 ---------4字节(32位) ------------------------------------------------------- ...
- java将一个整数按字节输出_在java中的整数类型有四种,分别是 byte short int long 其中byte只有一个字节 0或1,在此不详细讲解。其他的三种类型如下:1、...
在java中的整数类型有四种,分别是 byte short int long 其中byte只有一个字节 0或1,在此不详细讲解. 其他的三种类型如下: 1. 基本类型:short 二进制位数:16 ...
- int数据类型的取值范围
int取值范围 总所周知int类型在计算机中占4个字节.4*8=32位,因此int类型数据的取值范围为:-231 ~ 231-1 即:-2147483648 - 2147483647,那么这是如何得来 ...
- Java中数据类型的取值范围
整数数据类型的取值范围 我们都知道计算机的底层是二进制,也知道不同的整数类型存储值的范围不同,可这些数值在计算机底层是怎样存储的呢?数值范围又是怎么计算出来的呢? 下面以java来进行举例: byte ...
- java存储整数,用于存储整数数值的是 JAVA四种整数数据类型的取值范围分别是多少...
JAVA四种整数数据类型的取值范围分别是多少 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的1 ...
- C语言——数据类型、基本数据类型的取值范围
目录 一.数据类型 1.基本类型 2.sizeof运算符 3.signed和unsigned 二.取值范围 1.比特位 2.字节 3.符号位 4.补码 5.基本数据类型的取值范围 一.数据类型 1.基 ...
最新文章
- 技术图文:Python 匿名函数 VS. C# Lambda表达式
- ETL工具框架开源软件
- C#设计模式之:抽象工厂模式与反射
- qt designer 自定义插件找不到指定的模块_SpringBoot之spring-boot-load模块
- SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍试读版
- Java on Windows Mobile
- 2017.10.1 互不侵犯king 思考记录
- 正则表达式匹配连续相同字符
- Android TV 开发(5)
- javascript中eval解析JSON字符串
- 计算机屏显内容超过屏幕了,电脑屏幕超出工作频率范围修复方法
- word 单页、多页面旋转
- JAVA串口通信开发
- 盒子拖拽效果,原生js实现
- 浅谈面向对象和面向过程
- 跨专业保研浙大计算机,保研经验:排名第一,论文两篇,七项专利,两个国家级大创,夏令营斩获多个offer,成功上岸985!...
- 导入mysql文件提示“ASCII '\0' appeared in the statement”
- 攻击微软、三星等大型企业的黑客组织LAPSUS$成员被逮捕
- C语言-假设有一对兔子,出生第二个月变成了一对大兔子,第三个月后变成一对老兔子, 并开始每月出生一对小兔子,依次类推。求15个月内共有多少对兔子?
- MTU MSS 设置对网络环境的影响