CS-信息的表示和处理

信息存储

1.位:位(bit)是电子计算机中最小的数据单位,每一位的状态只能是0或1.
2.字节:8个二进制位构成一个字节(byte),它是存储空间的基本计量单位。1个字节可以存储1一个英文字母或者半个汉字。
3.字:字由若干字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如:一台8位机,它的一个字就等于1个字节,字长8位;一台16位机,它的一个字由两个字节构成,字长1位。
4.数据大小:计算机和编译器支持多种不同方式的编码数字格式,如整数和浮点数以及其他长度的数字。
5.字节顺序:大端法(最高有效字节在最前面);小端法(最低有效字节在最前面)
6.用位来表示信息,优点是易于存储,可靠传输。
7.C语言中字符串被编码为一个以null(其值为0)字符结尾的字符数组,每个字符都是用标准的编码来表示,常用的是ASCII编码。

  • 大小端示例1
char s[6]="18243"

在任何平台中都可以得到相同的结果
下图中是用ascii码来表示字符
在这里插入图片描述

  • 大小端示例2
    十进制 15213
    二进制 0011 1011 0110 1101
    十六进制 3 b 6 d
    在这里插入图片描述

8.C语言中的位级运算

  • C语言中&,|,~,^操作可以应用于整型类型long,int ,short,char,unsigned中,将整数看做是字节向量(按位进行运算)
  • 示例
    ~0x41->0xbe ~01000001->10111110
    0x69&0x55->0x41

9.C语言中的逻辑运算

  • &&,||,!(与,或,非)
  • 示例
    0x69&&0x55->0x01

10.掩码运算,这里的掩码是一个为模式,表示从一个字中选出的位的集合。例如,可以利用0xFF&x生成一个由x的最低有效字节组成的值,而其他字节被置为0。

11.移位运算

  • 左移:x<<y表示将x左移y位,左边的位全部丢弃,在右边填0.
  • 右移:x>>y表示将x右移y位,右边的位全部丢弃,对于逻辑移位左边填0,对于算术移位填充符号位。

整数

1.整数数值的表示范围(以32位机器为例)

C数据类型最小值最大值
char-128127
unsigned char0255
short-3276832767
unsigned short065535
int-2 147 483 6482 147 483 647
unsigned int04 294 967 295
long-2 147 483 6482 147 483 647
unsigned long04 294 967 295
long long-9 223 372 036 854 775 8089 223 372 036 854 775 807
unsigned long long018 446 744 073 709 551 615

2.整数编码
在这里插入图片描述

  • 补码表示中最高位表示符号位,0表示非负,1表示负数。负数在计算机中是以补码的形式保存。
  • 数值范围
    无符号数:0~2w-1,w为位向量的长度。
    补码:-2w-1~2w-1-1,w为位向量的长度。

3.扩展与截断

  • 符号位扩展:给定一个w位的有符号位整数x,将其扩展转换为一个w+k位的整数,要求其值相等。
  • 0扩展:在扩展开头简单加0扩展即可。
  • 截断:将一个w位的数字x截断为一个k位数字,这时会丢弃w-k位,得到新的数字x’
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值