二进制补码、进制转换与ARM汇编基础解析

1、11011101的二进制补码是多少?

先求 11011101 一的补码 ,即将每一位取反,得到 00100010 ,然后再加 1 ,得到 00100011 。所以 11011101 的二进制补码是 00100011

2、进行进制转换,以填充下表中的空白处:十进制、二进制、十六进制、二十一进制,已知数值分别为23、010011、ABB、2HE。

  1. 十进制23转二进制:
    - 用除2取余法,23÷2 = 11余1,11÷2 = 5余1,5÷2 = 2余1,2÷2 = 1余0,1÷2 = 0余1。从下往上读余数,得到二进制为 10111

  2. 二进制010011转十进制:
    - 根据二进制转十进制公式,(0×2⁴ + 1×2³ + 0×2² + 0×2¹ + 1×2⁰ = 8 + 1 = 9)。
    - 二进制转十六进制,从右到左每4位一组,010011可分为 0001 0011 ,0001对应十六进制的 1 ,0011对应十六进制的 3 ,所以十六进制为 13

  3. 十六进制ABB转十进制:
    - 根据十六进制转十进制公式,(A)在十六进制中表示10,(B)表示11,则
    (10×16² + 11×16¹ + 11×16⁰ = 10×256 + 11×16 + 11 = 2560 + 176 + 11 = 2747 )

  4. 二十一进制2HE转十进制:
    - (H)在二十一进制中表示17,(E)表示14,则
    (2×21² + 17×21¹ + 14×21⁰ = 2×441 + 17×21 + 14 = 882 + 357 + 14 = 1253 )

完整表格如下:

Base 10 Base 2 Base 16 Base 21
23 10111 17 -
9 010011 13 -
2747 - ABB -
1253 - - 2HE

3、假设字符串 “This is a nice day” 从地址 4B3269AC₁₆ 开始存储。地址 4B3269B1₁₆ 处的字节内容用十六进制表示是什么?

首先,计算地址偏移量: 4B3269B1₁₆ - 4B3269AC₁₆ = 5₁₆ = 5₁₀
即地址 4B3269B1₁₆ 是字符串起始地址往后偏移 5 个字节的位置。

字符串 "This is a nice day" 中,偏移 5 个字节对应的字符是 ' ' (空格)。
在 ASCII 码中,空格字符的十进制值是 32,转换为十六进制是 20₁₆

所以地址 4B3269B1₁₆ 处的字节内容用十六进制表示是 20₁₆

4、数字1,234,567以32位字的形式存储,起始地址为F0439000₁₆。分别展示在(a)小端字节序系统和(b)大端字节序系统中,该32位字每个字节的地址和内容。

首先将1,234,567转换为十六进制:12D687。由于是32位字,需补齐为0012D687。

(a)小端字节序系统:数据的低位字节存于低地址,高位字节存于高地址。

  • 地址 F0439000₁₆ 内容为 87
  • 地址 F0439001₁₆ 内容为 D6
  • 地址 F0439002₁₆ 内容为 12
  • 地址 F0439003₁₆ 内容为 00

(b)大端字节序系统:数据的高位字节存于低地址,低位字节存于高地址。

  • 地址 F0439000₁₆ 内容为 00
  • 地址 F0439001₁₆ 内容为 12
  • 地址 F0439002₁₆ 内容为 D6
  • 地址 F0439003₁₆ 内容为 87

5、UTF - 8 常被称为 Unicode,为什么这是不正确的?

UTF-8 和 Unicode 不同。
ISO/IEC 10646 定义了从码点到字符的映射,
UTF-8 为 ISO/IEC 10646 标准中的码点定义了一种高效的可变长度编码,
而 Unicode 为 ISO/IEC 10646 字符集添加了特定语言属性。

所以 UTF-8 只是对 Unicode 字符集进行编码的一种方式,不能将二者等同。

6、熟练的汇编程序员可以在脑海中对二进制、十六进制和十进制的小数字进行相互转换。不参考任何表格、不使用计算器或铅笔,填写以下表格,完成二进制、十进制、十六进制之间的相互转换:

二进制 十进制 十六进制
5
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值