2021年12月2日打卡

啦啦啦 2021-12-02 21:28:13

数据的处理与存储
1、移位操作
(1)逻辑移位:数码位置变化
                            10001111
          循环左移:00011111
(2)算术移位:符号位不变,数码位置变化

①正数原码/补码移位规则

数符不变(单:符号位不变,双:第一符号位不变) 

空位补零(右移时第二符号位移至尾数最高位)

 单符号位双符号位
 00111000111
左移01110001110
右移00011000011

②负数补码移位

移位规则:

    数符不变(单:符号位不变,双:第一符号位不变)

    左移空位补0:

    右移空位补1:(第二符号位移至尾数最高位)

 2、舍入方法

(1)0舍1入(原码补码)

例:保留四位尾数:

0 00100原——>0 0010原

1 00101原——>1 0011原

1 11011补——>1 1110补

(2)末位恒置1(原码,补码)

例:保留4位尾数

0 00100原——>0 0011

1 00101原——>1 0011

1 11011补——>1 1101

3、数据扩展与压缩

(1)符号扩展

直接把符号位(0/1)填充到扩展位

000A——>0000 000A

800A——>FFFF 800A

(2)0-扩展(高位均全补0,针对无符号数

002A——>0000 002A

F12C——>0000 F12C

(3)位数压缩(弃高位,留低位)

F12B 800A——> 800A

02A0F12C——> F12C

4、数据存储

(1)小端模式

小地址单位存储数据的低位(即尾端)

(2)大段模式

大数据单位存储数据的低位(即尾端)

 以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况,我们可以用unsigned char buf[4]来表示value
Big-Endian: 低地址存放高位,如下:
低地址
---------------
buf[0] (0x12) -- 低位字节
buf[1] (0x34)
buf[2] (0x56)
buf[3] (0x78) -- 高位字节
---------------
高地址
Little-Endian: 低地址存放低位,如下:
低地址
---------------
buf[0] (0x78) -- 高位字节
buf[1] (0x56)
buf[2] (0x34)
buf[3] (0x12) -- 低位字节

5、数据字的对齐

要求数据的地址是相应的边界地址

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...全文
168 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
摸鱼
~~1112233 摸鱼达人洋洋 2021-12-03
  • 打赏
  • 举报
回复

打卡,打卡

221,592

社区成员

发帖
与我相关
我的任务
社区描述
加入我们一起摸鱼划水、分享快乐、学习交流 【QQ群:151836911】【版主微信:wh18363】
游戏经验分享 个人社区
社区管理员
  • 海拥✘
  • Code Writers
  • 芝麻粒儿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

🎉 摸鱼一时爽,一直摸鱼一直爽;跟海海一起摸鱼,从入职摸到离职。

🎁 如果你是在上班时间看到了这句话,恭喜你,你已经是我们摸鱼大军中的中流砥柱了。

社区主页:https://bbs.csdn.net/forums/moyu (ctrl+D收藏一下吧)

⭐️ 摸鱼导航:

1、摸鱼小游戏:https://haiyong.site/moyu

2、学习资料:https://haiyong.site/doc/

3、摸鱼小工具:https://haiyong.site/tools/

4、摸鱼交流圈:https://haiyong.site/chat/

5、牛客【模拟面试、刷题神器】: http://mtw.so/5yjpN8

【社区积分规则】

  • 在社区「发帖」得10积分
  • 内容被管理员「加精」得10积分
  • 点赞他人内容得1积分
  • 评论内容得2积分

博主微信 👇👇👇

试试用AI创作助手写篇文章吧