C语言基础(4)-原码,反码,补码及sizeof关键字
2016-12-28 14:28
309 查看
1. 原码
+7的原码是0000 0111-7的原码是1000 0111
+0的原码是0000 0000
-0的原码是1000 0000
2. 反码
一个数如果值为正,那么反码和原码相同。一个数如果为负,那么符号位为1,其他各位与原码相反
+7的反码0000 0111
-7的反码1111 1000
-0的反码1111 1111
3. 补码
原码和反码都不利于计算机的运算,如:原码表示的7和-7相加,还需要判断符号位。正数:原码,反码补码都相同
负数:最高位为1,其余各位原码取反,最后对整个数 + 1
-7的补码:=
1000 0111(原码)
1111 1000(反码)
1111 1001(补码)
+0的补码为00000000
-0的补码也是00000000
根据负数的补码求原码:补码符号位不变,其他位求反,最后整个数 + 1,得到原码
用补码进行运算,减法可以通过加法实现 |
7-6=1 7的补码和-6的补码相加:00000111 + 11111010 = 100000001 进位舍弃后,剩下的00000001就是1的补码 |
-7+6 = -1 -7的补码和6的补码相加:11111001 + 00000110 = 11111111 11111111是-1的补码 |
4.sizeof关键字
sizeof不是函数,所以不需要包含任何头文件,计算一个数据类型的大小,单位:BYTE其实C语言不规定具体数据类型的大小,所以数据类型实际的大小和系统是息息相关的,但是相同的系统下,同数据类型大小一定是一样的。
size_t类型在32位操作系统下是unsigned int,就是一个无符号的整数。当我们写程序要处理一个不可能出现负值的时候,一般用无符号数,这样可以增大数的表达最大值。
相关文章推荐
- c语言基础系列-原码 反码 补码10
- C语言中八进制和16进制怎么表示,原码,反码及补码,C语言按位取反运算符~
- C语言笔记——原码、反码、补码
- C语言的int最值问题,以及原码反码及补码
- C语言 原码--反码--补码
- C语言原码反码补码与位运算.
- C语言中显示变量所占字节数;字节、字、字长;原码、反码、补码
- 计算机基础(1)-原码、反码、补码
- 【基础】1.原码、反码、补码
- Java基础——原码, 反码, 补码 详解
- C语言的原码,反码,补码
- C语言-数据类型(原码、反码、补码)
- 计算机基础知识-原码反码补码
- C语言中的原码,反码,补码
- C语言——原码、反码、补码、数据类型取值范围
- C语言(4) 原码、反码、补码与位运算
- c语言原码,补码,反码你们不在意的由来
- 原码反码补码基础
- C语言的原码,反码和补码
- C语言中八进制和十六进制怎么表示以及原码、反码、补码、C语言按位取反运算符~