c语言==8位数据越界处理(20)
来源:互联网 发布:50量子计算机 ibm 知乎 编辑:程序博客网 时间:2024/06/06 03:34
8位有符号数的取值范围是-128~+127,为什么呢?
首先我们知道,计算机以补码的形式存储的,正数的补码是原码不变,负数的补码是原码的取反加1。
我们先来看+127,原码0111 1111对吧,若+128是多少呢,0111 1111 + 1 = 1000 0000 (原码),然后存储时,计算机一看是最高位为1,就保持符号位不变,后面7位取反加1,然后呢,进位舍弃,还是1000 0000(-128)。所以对于8位数据来说,+128 实际上变成 - 128。
对于-128我们来看,首先对于负数,计算机处理是保持符号位不变,剩余位先取绝对值然后取反加1,128(取绝对值)1000 0000 取反(1111 1111),加1 (1000 0000),所以-128的补码是1000 0000(原码和补码一样的),下面,我们来看一下-129的值,-128的原码为 1000 0000 减1 等于0111 1111 (原码计算就没有那些规矩了,直接计算就行了),然后存储,计算机一看正数,就直接存储了+127.
strlen()函数是返回一个字符串的长度,遇到’\0’结束。
0 0
- c语言==8位数据越界处理(20)
- 8位数据越界处理
- 8位数据越界处理
- C语言的越界问题(100+200=44)
- C语言中的数组越界
- C语言的越界访问
- C语言中的数组越界
- C语言中的数组越界
- 数组下标越界解析(以C语言为例)
- C语言反转二进制数据位
- C# 数组越界的一场处理
- Linux C语言 内存越界问题总结
- C语言指针越界访问示例
- 论C语言中的数组下标越界
- C语言数组越界问题实例
- C语言中数组越界的例子
- C语言中的越界问题解析
- c语言中位数的求法 防止越界
- 折半查找
- GPS坐标转换
- 给定一个整数,如何取其各个位的数
- 针对Logstash吞吐量一次优化
- Android反编译
- c语言==8位数据越界处理(20)
- 深拷贝、浅拷贝
- Android activity的生命周期
- 猫客论坛上线
- LDA主题聚类学习小结
- 扫描(Scanner类)
- 系统操作日志设计
- SpringBoot之配置文件及自定义参数
- 习题 3.1