大德通众包做网站怎么样,怎么在南京人社网站做失业登记,上海网站备案信息注销,域名关键词查询1.辨析原码反码补码#xff1a; 1.原码#xff1a;有32位#xff08;int类四个字节#xff0c;一个字节八个比特位#xff09;#xff0c;第一位是符号位#xff0c;0正1负#xff0c;其余为二进制位。 2.计算一般是对原码进行计算#xff0c;但在负数计算使用原码会导…1.辨析原码反码补码 1.原码有32位int类四个字节一个字节八个比特位第一位是符号位0正1负其余为二进制位。 2.计算一般是对原码进行计算但在负数计算使用原码会导致程序出错所以负数计算中使用反码反码就是除了符号位其余位置取反反码存在的原因就是负数的计算 3.虽然有了反码但遇到负数跨0比如-671的问题时无法解决所以产生了补码补码等于负数的反码加1
2.正整数的原码补码反码都相等负数的原码正常反码为第一位不变其余位按位取反补码位反码加一
3.在整形存储中一般以补码的形式存在因为这样可以使符号位与数值位统一处理加法和减肥都可以统一处理(cpu只有加法器)其运算过程是相同的不需要额外硬件
4.大端和小端超过1字节的数据在存储的时候就会存储顺序的问题按照不同的存储顺序分为大端字节序存储和小端字节序存储 1.大端模式数据的低位字节内容保存在内存的高地址处数据的高位字节内容保存在内存的低地址处 2.小端模式低位字节内容保存在内存的低地址处高位字节内容保持在高地址处
5.大小端存在的原因
6.判断大小端的方法 7.例题 析题在内存中数据储存首先进行一个截断操作将变量补码的后八位取出然后会进行一个还原操作会用符号位的数值将截断码补成32位补充之后的码继续作为原码。以‘%d的形式打印就是打印一个十进制有符号的整数而操作对象是变量的补码a,b两个变量的补码的运算结果为-1而c的补码首位是0.所以它的补码等于原码等于它本身所以是255
8.例题2
析题内存存储 %u表示打印十进制无符号整型上表表示了在内存中所有有符号字符型的存储可能8个字节可以发现范围是127到-128而中间的0000000会自动解析为128无符号字符型的取值为0到255,
而无符号整型的补码是它自己直接把128的补码的截断补充的形式打印出来
9.例题3 答案是256为啥
析题 char类型的整型范围有以上规律是一个闭合的环而strlen函数就是找\0,而\0的asc码值为0就是找char 0的位置按照上图正好循环一圈为255个数
10.例题4
析题无符号整型也是一个闭环0-1等于2的33次方-12的33次方减1然后加一为2的33次方但int只能储存2的32次方所有按照截断方法来看该值就是0就是所有位都是1然后再减。
11.在强转出现时应先计算右侧式子然后再进行强转
12.例题五
析题
先假设数据的存储是小端类型
01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00
p1取的是数组的地址加一代表指针指向了数组最后一个元素的后面此时指针类型为数组指针
此时将指针转化为int*型每次进行运算时移动四个字节而p1[-1]代表向前移动四个字节然后读取为4而p2的运算依据11指向2的同时进行类型转换为int类型而转换为int类型的同时编译器会读取向后的四位为一个数字2000000前面的0不读取然后转换为int*类型然后读取打印结果为2000000。