专题学习网站模板,网站建设优化服务效果,中国设计之家,成都广告公司简介目录
概述【适合0基础看的简要描述】#xff1a;
上述加粗下划线的内容提取版#xff1a;
从上述概述中提取的核心知识点#xff0c;需背诵#xff1a;
整数【包含整数#xff0c;负整数和0】的原码反码补码相互转换的过程图示#xff1a;
过程详细刨析#xff1a;…目录
概述【适合0基础看的简要描述】
上述加粗下划线的内容提取版
从上述概述中提取的核心知识点需背诵
整数【包含整数负整数和0】的原码反码补码相互转换的过程图示
过程详细刨析
运行结果展示 概述【适合0基础看的简要描述】
整型的表示方法原码反码补码 正整数的符号位为0负整数的符号位为1 正整数的原码反码补码 负整数的原码先写出来符号位不变其他位按位取反就可以得到反码反码1即可得到补码。 进行运算或者赋值时输入的都是十进制数转换成二进制即为该数的原码再转换成补码就可以进行赋值或运算了赋值或运算结束后将补码转换成原码最后将补码转换成十进制就是最终的结果了。
上述加粗下划线的内容提取版
十进制 - 二进制源码 - 二进制补码 - 按位取反 - 二进制原码 - 十进制 从上述概述中提取的核心知识点需背诵
按位取反对一个数的二进制补码进行取反。0转11转0。
原码在数值前面增加一位符号位0表示正数1表示负数。
反码正数的反码与原码相同负数的反码对其原码逐位取反符号位除外。
补码正数的补码与其原码相同负数的补码是在其反码的末位1。 整数【包含整数负整数和0】的原码反码补码相互转换的过程图示 过程详细刨析
//按位取反【~】【cout函数默认整型是int,(由于int整型是占4个字节的相当于32个bit位不算符号位所以二进制一共有32位数值位最左边的一位符号位【符号位若为0代表数的十进制是个非负数符号位若为1代表数的十进制是个正数】)】
#includeiostream
using namespace std;
int main() {cout (~0) endl;//0存储在内存中// 0b 0 00000000 00000000 00000000 00000000 【0的原码反码补码】【从左往右数第一位是符号位】// 0b 0 00000000 00000000 00000000 00000000 【0的补码】// ~0【0按位取反的过程】 // 0b 1 11111111 11111111 11111111 11111111 0的补码按位取反后的结果【从左往右数第一位是符号位进行按位取反时符号位也要取反】// 0b 1 11111111 11111111 11111111 11111110 补码-1反码// 0b 1 00000000 00000000 00000000 00000001 反码取反原码// 所以0的按位取反结果是-1//求一个数的相反数【(按位取反x)1(-x)】int a 16;cout (~a) 1 endl;// ~16【按位取反16的过程简略写省略了一部分数值位详细的看上面0的按位取反】// 0b 0 10000 16的原码反码补码// 0b 1 01111 16的补码按位取反~16的补码// 0b 1 01110 ~16的反码// 0b 1 10001 ~16的原码// ~16-17// (~161)-16return 0;
} 运行结果展示