signed char的取值范围,在内存中的存储形式
来源:互联网 发布:淘宝店卖家信誉等级表 编辑:程序博客网 时间:2024/06/05 15:10
一直不明白signed char的取值范围为什么是-128~127, 在网上看了些信息后,在此做一个个人小结:
在内存中,数据的存储形式都是以补码的形式存放的。
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
先看看原码,反码,补码定义:
原码:数值前面增加了一位符号位(即最高位为符号位)在符号位上用"0"表示正数;用"1"表示负数。数值位表示真值的绝对值
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外
补码:正数的补码与其原码相同,负数的补码为符号位为1,其余位为该数绝对值的原码按位取反,然后加1(也就是其反码加1,符号位除外)
以8为例:
原码:00001000 (符号位为0)
反码:00001000
补码:00001000
所以,正数的原码,反码,补码都是一样的,不变
以-8为例:
原码:10001000 (符号位为1)
反码:11110111
补码:11111000
为什么signed char取值范围是-128~127 ???
其最大正数在内存中的形式为
01111111
也就是数值127
最小负数是多少呢?
首先我想到的是:
11111111
但是将其转为原码为:
10000001 其值是 -1
然后,我再想到是不是这个:
10000000
将其转为原码为:
110000000 其值是 -128
这样就对了,原码是超出了8位,但在内存中数据的存储形式是补码
内存中10000000表示的就是-128,8位数据的最小值
0 0
- signed char的取值范围,在内存中的存储形式
- unsigned char和signed char型变量的区别,赋值后它在内存中的存储形式
- unsigned char和signed char型变量的区别,赋值后它在内存中的存储形式
- unsigned char和signed char型变量的区别,赋值后它在内存中的存储形式
- unsigned char和signed char型变量的区别,赋值后它在内存中的存储形式
- byte类型数据的取值范围及溢出后的强制转换及在内存中的存储结果
- signed char的取值范围为何最小为-128
- 负数在内存中的表示,int类型取值范围
- signed char类型取值范围计算
- 浮点数在内存中的存储形式
- 浮点数在内存中的存储形式
- 整数在内存中的存储形式。。
- float数据在内存中的存储形式
- 浮点数在内存中的存储形式
- 浮点数在内存中的存储形式
- 计算 signed short 的取值范围
- 浮点数在内存中的存储形式(转载)
- ASCII,编码,信息在内存中的存储形式
- 重建二叉树
- iOS MD5加密算法
- 【树分治】 ZOJ Travel
- java.util.vector中的vector的详细用法
- 解决sunos solaris中的PS命令无法正常显示全部内容的问题
- signed char的取值范围,在内存中的存储形式
- Hibernate parameter binding examples
- 堆排序
- iOS开发判断TextField中输入的数字为小数点后两位
- Android Studio导入项目的几种方法
- android中属性动画
- 找出数列单独的数字
- 给ASP.NET MVC及WebApi添加路由优先级
- 【网络】(十二)UDP简介