当前位置:网站首页>关于 byte 的范围
关于 byte 的范围
2022-07-29 23:41:00 【威少总冠军】
1. 关于原码、反码、补码
- 原码:一个数在计算机中的二进制形式,最高位表示符号位,1 表示 负,0 表示 正
[ 1 ]原 = 0000 0001
[ -1 ]原 = 1000 0001 - 反码:正数的反码与原码相同,负数的反码:在原码的基础上,符号位不变,其它各位取反(1 变 0,0 变 1)
[ 1 ]反 = 0000 0001
[ -1 ]反 = 1111 1110 - 补码:正数的补码与原码相同,负数的补码:反码 + 1
[ 1 ]补 = 0000 0001
[ -1 ]补 = 1111 1111
2. 计算机运算
- 计算机中只有加法,没有减法,减去一个数,就是加上这个数的负数
- 计算机运算时,符号位参与运算
- 人识别数,一定要看原码(对于人类而言,二进制表示的数一定是从原码中求出的)
- 原码运算:
1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [1000 0010]原 = -2 - 反码运算:
1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [ 1000 0000 ]原 = -0 - 补码计算:
1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]反 + [1111 1110]反 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补 = 0
反码的作用是解决减法运算,补码的作用是解决反码产生的 ±0 问题
综上,计算机内部采用补码的方式存储有符号的数据,采用补码的方式进行运算
3. 为什么byte类型的范围是 -128 ~ 127?
- byte 占一个字节(8个 bit 位),最高位是符号位,尾七位可以表示的就是 0 ~ 2^7 - 1( 1000 0000 = 2 ^ 7,减1,得到 111 1111),所以 byte 可以表示 -127 ~ 127
- [1000 0000]补 表示 -128,-128只有补码,没有原码和反码
- 我认为[1000 0000]补 = [0111 1111]反 = [0000 0000]原 = 0;已经有[0000 0000]原 表示 0 了,不需要[1000 0000]补 表示 0 了,所以[1000 0000]补 表示 -128
- 综上所述 byte 的范围就是 -128 ~ 127
- byte类型,1 + 127 = [0000 0001]原 + [0111 1111]原 = [0000 0001]补 + [0111 1111]补 = [1000 0000]补 = -128;
2 + 127 = [0000 0010]原 + [0111 1111]原 = [0000 0010]补 + [0111 1111]补 = [1000 0001]补 = [1000 0000]反 = [1111 1111]原 = -127
4. 基本类型的范围
| 基本数据类型 | 字节 and 范围 |
|---|---|
| byte | 1 , -128 ~ 127(- 2 ^ 7 ~ 2 ^ 7-1 ) |
| short | 2,- 2 ^ 15 ~ 2 ^ 15-1 |
| int | 4,-2 ^ 31 ~ 2 ^ 31-1 |
| long | 8,-2 ^ 63 ~ 2 ^ 63 - 1 |
| float | 4 |
| double | 8 |
| char | 2 |
5. 关于 int 类型的范围
- 0000 0000 0000 0000 0000 0000 0000 0000,int类型占4个字节,32个bit位
- 最高位是符号位,尾31位可以表示的是 0 ~ 2^31 - 1,所以 int 可以表示 -2 ^31 - 1 ~ 2 ^31 - 1
- [1000 0000 0000 0000 0000 0000 0000 0000]补 表示 -2^31,[0111 1111 1111 1111 1111 1111 1111 1111]反 = [0000 0000 0000 0000 0000 0000 0000 0000]原 表示 0,与 byte 类似
- 因此,int 类型的范围是 -2 ^ 31 ~ 2 ^ 31-1
神奇黄河口,魅力石油城
山东东营
边栏推荐
- DFS对树的遍历及一些优化
- Another new rule for credit cards is coming!Juphoon uses technology to boost the financial industry to improve service quality and efficiency
- C陷阱与缺陷 第3章 语义“陷阱” 3.10 为函数main提供返回值
- 微信小程序获取手机号getPhoneNumber接口报错44002
- Apache Doris 1.1 特性揭秘:Flink 实时写入如何兼顾高吞吐和低延时
- windows下 PHP 安装
- devops学习(八) 搭建镜像仓库---jenkins推送镜像
- 【2023校招刷题】常见面试问题总结(七、常见总线协议篇)(随后续面试不断更新....)
- MySQL【基本select语句】
- Elementary C language - first understanding of C language
猜你喜欢

Analysis of miscellaneous diseases such as DNS domain name hijacking in instant messaging mobile terminal development

DNA修饰碱基5-甲基胞嘧啶和8-羟基鸟嘌呤|DNA修饰量子点|规格信息

Windows 安装 MySQL 5.7详细步骤

windows下 PHP 安装

接口测试的概念、目的、流程、测试方法有哪些?

Elephant Swap:借助ePLATO提供加密市场的套利空间

【openlayers】地图【一】

Hell Diggers Series #1

运动步数抽奖小程序开发

mysql使用on duplicate key update批量更新数据
随机推荐
Wincc报表教程(SQL数据库的建立,wincc在数据库中保存和查询数据,调用Excel模板把数据保存到指定的位置和打印功能)
MQTT over QUIC: The Next-Generation IoT Standard Protocol Brings New Impetus to Messaging Scenarios
leetcode122. Best Time to Buy and Sell Stock II 买卖股票的最佳时机 II(简单)
仿牛客论坛项目部署总结
JetsonNano learning (6) Big pits and solutions that Jetson stepped on___Continuously updated
重写并自定义依赖的原生的Bean方法
JSON.parseObject 带泛型告警
C陷阱与缺陷 第4章 链接 4.1 什么是链接器
r‘w‘r‘w‘r‘w‘r
2022/7/29 考试总结
Hell Diggers Series #1
MySQL【基本select语句】
Another new rule for credit cards is coming!Juphoon uses technology to boost the financial industry to improve service quality and efficiency
重庆OI 2005 新年好
windows下 PHP 安装
Gao Shu Xia|Triple Integral Exercises|Uncle Gao Shu|Handwritten Notes
全国双非院校考研信息汇总整理 Part.1
【leetcode】The sword refers to Offer II 002. Binary addition
Brute force recursion to dynamic programming 04 (digital string conversion)
[leetcode] 82. Delete duplicate elements in sorted linked list II (medium)