首页 > 其他分享 >CSAPP(一)

CSAPP(一)

时间:2024-07-30 15:30:32浏览次数:12  
标签:CSAPP number unsigned char printf x2 x3

0x01 关于补码

iHATE公式

对于char类型

2Byte,8位,其中有1位视为符号位
表示最大值

2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
0 1 1 1 1 1 1 1

UMax: -2^7*0 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 1 = 127
转为16进制表示即:7F

TMax: -2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 1 = -1
转为16进制表示即:FF

0x02 互相转换

//当signed number与unsigned number比较时,会将signed number进行隐式转换
#include <stdio.h>

int main()
{
    //1Byte=8Bit
    //c语言是静态语言即声明时要指定类型,强类型语言
    char x1=0x7f;
    char x2=0xff;
    unsigned char x3=0xff;
    printf("%d\n",x1);
    printf("%d\n",x2);
    if (x2<x1)
    {
        printf("this is signed number compare\n");
    }

    printf("x2=%d\n",x2);
    if (x3>x1)
    {
        printf("this is unsigned char compare\n");
        printf("x3=%d",x3);
    }

    return 0;
}

只要有任意1个参数是unsigned number那么其他的参数在进行运算时均会转为unsigned number

标签:CSAPP,number,unsigned,char,printf,x2,x3
From: https://www.cnblogs.com/cia1lo/p/18332469

相关文章

  • HIT计算机系统CSAPP期末大作业
                                            计算机系统大作业题    目  程序人生-Hello’sP2P 专      业     数据科学与大数据技术                  学  号     202......
  • HIT CSAPP 计算机系统大作业 程序人生-Hello’s P2P From Program to Process
    摘 要本文借助hello.c跌宕起伏的一生——P2P(FromProgramToProcess)、020(FromZero-0toZero-0)从源代码到可执行程序以及和计算机系统硬件的配合,从计算机系统的角度阐述从源代码到可执行程序的转变,以及在计算机系统当中作为众多进程中的一员的运行过程。源程序首先经......
  • CSAPP Lab04——Cache Lab大师手笔,匠心制作
    浮沉浪似人潮哪会没有思念你我伤心到讲不出再见——讲不出再见完整代码见:CSAPP/cachelab-handoutatmain·SnowLegend-star/CSAPP(github.com)PartA:CacheSimulator这个lab描述背大锅,开始我是真有点没看懂题目的描述。特别是“M20,1”“L10,1”,这种描述二......
  • CSAPP
    感悟:原来读名校和非名校的区别是这样的在以前的211的时候,我上一门叫《你应该知道的数学》的课程,那时老师给我们介绍各种历史留名的大数学家,言语之间流露出“你们只能读这个水平的学校,自然也很难做出什么大成就”。现在到了top3,在上CSAPP的时候,老师对我们的期待就变成了——你们......
  • CSAPP Lab02——Bomb Lab完成思路详解
    看见的看不见的瞬间的永恒的青草长啊大雪飘扬——月亮之上完整代码见:CSAPP/bombatmain·SnowLegend-star/CSAPP(github.com)01字符串比较简单的把输入的字符串和地址“0x402400”内早已存储的字符串相比较。如果两个字符串相等则函数返回,否则炸弹爆炸。这里有......
  • HIT-CSAPP大作业——程序人生-Hello‘s P2P
    计算机系统大作业题    目  程序人生-Hello’sP2P 专      业        信息安全        学号       2022******        班    级          22*****        ......
  • CSAPP 第五章 优化程序性能
    5-1&2优化程序性能保守性编译器优化是保守的,只要有矛盾就不会激进的优化。CPECPE表示每个元素执行所需要的周期数。如368+6*k,6就是CPE。一个优化的例子这个代码每一次迭代要读两次内存,写入一次。这个只用读一次。以上优化会有一定的效果,读写内存是占用时间的。5-3......
  • CSAPP(datalab)解析
    操作符的解释右移操作符>>算术右移(通常用符号>>表示)保留符号位。对于正数,算术右移和逻辑右移的效果相同,即在左边填充0。对于负数,算术右移会在左边填充1,保持符号位的1不变。对于正数5(二进制表示00000101),右移1位:00000101>>1=00000010对于负数-5(二进制补......
  • CSAPP第二章
    gcc指定不同的C语言版本 注意寻址和字节顺序讲的, 对象的地址都是从小地址开始算起, 而所谓大端法就是高位字节在前; 小端法则是低位字节在前注意: 等号上的小圆点的组合表示"被定义为"的意思 反码有+0和-0,-0就是全为1的位模式,负数的反码就是对应正数所有位取反......
  • csapp_实验_-__datalab
    Datalab前言该实验是《深入理解计算机系统》(英文缩写CSAPP)课程附带实验——Lab1:DataLab,对应书中第二章内容(信息的表示和处理),是所有实验中的第一个实验,**实验目的**datalab实验提供了一个文件夹,我们的目的只是改写bits.c中的15个函数,使其完成相应的功能即可。至于其他文件......