【CSAPP阅读笔记】之信息的存储

一、信息的存储
1.进制转换

在计算机中我们常需要装换的进制有二进制,十进制,八进制,十六进制。

其中,二进制,八进制,十六进制之间的转换都是非常简单的,直接参照下面的表进行按位替换就行了。要注意的是,八进制与二进制转换是一个八进制位等价三个二进制位,十六进制与二进制转换是一个十六进制等价四个二进制位。

二进制八进制十六进制
000000
000111
001022
001133
010044
010155
011066
011177
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F

至于十进制与其他进制之间的转换,也是完全套用规律,用十进制与二进制之间的转换举例即可。

1.十进制装换为二进制:

  void dec_to_bin( int dec )
{
    assert( dec >= 0 );
    //保存每次除完之后的余数
    int remain = 0;
    if ( dec == 0 )
        return ;
    remain = dec % 2;
    dec = dec / 2;
    //递归求解
    dec_to_int( dec );
    printf( "%d", remain );
}

2.二进制转换为十进制:

void bin_to_dec( unsigned long  bin  )
{
    assert( bin >= 0 );
    int result = 0;
    int i = 0;
    //权重
    int weight = 1;
    while ( bin )
    {
        result += (bin%10) * weight;
        bin /= 10;
        //模拟2的n次方
        weight *= 2;
    }
    printf( "%d\n", result );
}
2.大端存储和小端存储

关于大端小端,用一幅图就可以说清楚。
图表现的是字0x01234567分别在大小端机器内的存储结构, 其中高位字节的十六进制值为0x01,而低位字节值为0x67.
大端小端示意图
大端是字的高位存储在地址的底位,字的低位存储在地址的高位。
小端是字的高位存储在地址的高位,字的低位存储的地址的低位。
linux一般为小端机,Windows的pc版本一般为大端机。

3.C语言中的位级运算

C语言的位级运算有 |(按位或),&(按位与),~(取反),^(异或),这些不用多说,值得说的一点就是可以利用异或实现不借助临时变量来交换两个变量的值,代码如下:

void inplace_swap(int *x, int *y)
{
    *x = *x ^ *y;
    *y = *x ^ *y;
    *x = *x ^ *y;
}

另外,这里再给出几种不借助临时变量来交换两个变量的值得其他方法:

void inplace_swap(int *x, int *y)
{
    *x = *y - *x;         //算出xy之间的差值
    *y = *y - *x;         //y减去yx之间的差值,得到的就是x的值
    *x = *y + *x;         //x加上yx之间的差值,得到的就是y的值
}

还可以用栈实现这个功能,实现方法比较简单,就不在贴代码了。

4.C语言中的移位运算

移位运算主要分为向左移动和向右移动,向左移动比较简单,都是采用的逻辑移位,而向右移动就要分情况处理,如果被移位的数是无符号的右移采用逻辑移位,如果是有符号的右移,大多都采用算术移位。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Proxy(代理)是一种在计算机网络中广泛应用的中间服务器,用于连接客户端和目标服务器之间的通信。Proxy csapp是一个与计算机系统应用(Computer Systems: A Programmer's Perspective)相关的代理服务器。 Proxy csapp的设计目的是为了提供更高效的网络通信,增强系统的安全性,并提供更好的用户体验。在Proxy csapp中,客户端的请求首先会被发送到代理服务器,然后由代理服务器转发给目标服务器,并将目标服务器的响应返回给客户端。这种中间层的机制可以提供很多功能,如缓存、负载均衡、安全认证等。 在csapp中,Proxy csapp可以被用于优化网络数据传输的效率。代理服务器可以对客户端请求进行调度和协商,以减少网络延迟和数据传输量。通过缓存常用的数据和资源,代理服务器可以减少重复的数据传输和目标服务器的负载,提高网络性能和响应速度。 此外,Proxy csapp还可以提供安全的网络通信环境。代理服务器可以拦截和过滤网络流量,用于检测和阻止恶意攻击、垃圾邮件等网络安全威胁。代理服务器还可以对用户进行身份验证和授权,保护敏感数据的安全性。 最后,通过Proxy csapp可以实现更好的用户体验。代理服务器可以根据用户的需求进行个性化的服务,如按地理位置提供更快的网络连接、提供访问限制和控制等。代理服务器还可以对网络流量进行压缩和优化,提高网络传输效率,减少用户的等待时间。 总之,Proxy csapp在计算机系统应用中是一个重要的代理服务器,它可以提供高效的网络通信、增强系统的安全性,并带来更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值