小言_互联网的博客

计算机系统基础第二节

329人阅读  评论(0)

今天的主题是字节,位,和整数

每个位是0或1
由于位易于储存,且在干扰强烈的电线中能稳定传输,所以计算机使用二进制

编码字节值

一个字节是8个位

数据表示实例

字节序

组成字的多个字节在内存中是如何储存的呢?

传统:

1.大端
低位字节具有最高地址
2.小段
地位字节具有最低地址

我认为就是大端就是原版照抄(由原本的字节顺序储存)
小端就是把字节顺序倒过来储存(菜鸡勿喷)

位的操作

将0视为错误(False)
其他除了0以外的数皆为"ture";
在位操作中总是返回0或1

例子:

x<<y

将x向左移动y位,将移动过的位全部舍掉,空出来的位填充0.

x>>y

将x向右移动y位,将移动屏蔽的位舍掉,空出来的位有两种情况。
如果是逻辑移位,填充0
如果是算数移位,填充字符与符号位一致。


逻辑移位与算术移位的区别请看:https://blog.csdn.net/MyySophia/article/details/51714563

整数

有符号和无符号

1,原码表示法


补码表示法

定义:正数的补码就是它本身,负数的补码就是原负数加上模。
定点小数的模式2,定点整数的模是2^n+1
所以有
补码最大的优点就是将减法运算转化位加法运算
简便的方法:负数符号位为1,数值部分“各位取反,末尾加1”

反码的表示方法

反码与补码的区别仅仅就在于末尾是否加1,所以由补码的定义可以推出反码的定义

无符号数字的范围
最小:0
最大:(2^n)-1;
有符号数字的范围
最小:-2^n-1;
最大:(2^n-1)-1;

可以看出在取值宽度上无符号数与有符号数是一致的,只是起点不同
有符号与无符号的转化*(在开始的正数时是一致的,但到了有符号的负数阶段,有符号的负数-1对应无符号的最大值,有符号负数的最小值对应的是无符号对应有符号的最大值加1)*

依照上面图片就有以下匪夷所思的结论:(其中U是无符号的意思)

数据类型的转化

拓展

使n拓展k位,就是向右添加k个n的符号位

举例:

截断

这个比较粗暴,将X截断到w位(转化为w位),直接保留X的w位,剩下的直接舍去。

举例:


转载:https://blog.csdn.net/qq_43511964/article/details/102467527
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场