)
1、 题目unsigned int 占 2 字节能表示的范围是正确答案A0 ~ 655352、 计算1字节换算2 字节 16 位2unsigned无符号位最大值 2^16 - 1A0 ~ 655353、 知识点总结 unsigned没有负数 范围公式2 ^ 位数 - 11、 题目❓ char 的取值范围总是 -128 ~ 127❌ 错误2、 故事char 是“善变的孩子”有的电脑char 是 signed有的电脑char 是 unsigned3、 范围区别类型范围signed char-128 ~ 127unsigned cha0 ~ 2554、 记忆口诀char 的范围看属性有符号的有正负无符号的无负数取值范围有变化。1、 题目这道题考查的是8位二进制原码表示法的最小整数。2、什么是“原码”?1原码是一种带符号整数的二进制表示法·正数的原码就是它的普通二进制形式符号位为0;·负数的原码是绝对值的二进制符号位为1。2例如5的原码是00000101,-5的原码是100001013、8位原码结构1符号位(最高位):0表示正数1表示负数27位数值位表示0到127所以能表示的范围是正数00000001到01111111→1到127负数10000001到11111111 →-1到-127·注意负零(10000000)存在但它和正零(00000000)都表示0,不计入负数最小值4、最小整数是多少?由于原码不能表示-128(这通常是补码能做到的),所以原码的最小值是-127正确答案是A.-1271、 题目反码中零的表示形式有几种2、什么是“反码”反码onescomplement是一种带符号二进制数的表示方法规则如下正数的反码它本身的二进制符号位为0负数的反码其正数原码除符号位外各位取反符号位为13、反码中“0”的表示方式我们来看8位举例1正零000000002负零111111113区别正零就是普通的全0;负零是正零的反码(不变符号位其他取反)→所以变成全1。正确答案是B. 2种1、 题目补码10111011对应的真值是多少?2、补码的规则补码表示法下(8位):如果首位是0,就是正数数值直接转换。如果首位是1,是负数要先求“原码”,再取负数。3、转换步骤1我们要处理的是补码101110112第一步识别符号最高位是1,说明这是一个负数。3第二步求原码负数的原码补码先按位取反末位加14步骤一按位取反(补码→反码)补码10111011按位取反→010001005步骤二反码1→原码(二进制)010001001010001016转为十进制01000101 697所以真值是-69正确答案是A.-694、拓展快速判断负数补码真值的方法(1)对于一个8位补码如果是负数直接用256 -值再取负数。(2)比如补码10111011(二进制) 187(十进制)真值 187 -256 -691、 题目补码的加法中若最高位和次高位进位不同说明2、本题考察的是补码加法中的溢出判断规则。补码加法中溢出的判断方法在进行补码加法时如果最高位(符号位)发生了错误改变即符号位的进位(即最高位进位)和次高位的进位不同说明发生了溢出(overflow)。3、因此正确答案是B.发生上溢4、溢出条件1补码加法的溢出规则正数 正数结果应为正数。若溢出会变成负数符号位为1。负数 负数结果应为负数。若溢出会变成正数符号位为0。正数 负数不会溢出因为结果的绝对值不可能超过任一加数的绝对值。2关键点溢出仅发生在符号位参与运算时且符号位的进位C_out与次高位的进位C_next不同3示例正数 正数 → 溢出为负数假设用4位补码表示范围-8到75的补码01013的补码00114加法过程0101 (5) 0011 (3) --------- 1000 (-8) 错误结果5实际结果5 3 8但4位补码无法表示8最大为7因此溢出为-81000。1、 题目在Base64编码中如果输入字符串的长度为10字节编码后的字符串长度是多少 2、题目中说明Base64编码将每3字节的输入数据编码为4字节的输出数据。如果输入数据长度不是3的倍数会用号填充。3、每3个字节(24位)被编码成4个字节(32位)。如果输入数据长度不是3的倍数则余1字节时补2个,编码结果占4个字节。余2字节时补1个,编码结果占4个字节。4、计算过程1输入长度为10字节。2计算完整的3字节组数10÷33组剩余1字节3这3组完整的3字节数据会编码成3×412字节(4) 剩余1个字节需要补2个,因此会编码成4个字节。总长度12416字节5、答案D.16字节1、 题目在C中补码的主要作用是2、在C中补码的主要作用是B.简化整数的加减法运算3、解释补码是计算机中表示负数的一种方式。使用补码来表示整数时整数的加法和减法运算可以通过相同的硬件电路进行处理而不需要单独的加法器和减法器。这是因为加法器能够直接处理正负数的加法和减法不需要额外的转换过程。4、具体来说正数和负数的加法与减法都可以使用相同的加法运算规则极大简化了硬件设计。补码的负数是通过将正数的每个位取反并加1来得到的这使得加法器在处理正负数时变得简单高效。1、 题目[10000011]原 [10000011]补 分别是数字几2、计算过程1计算[10000011]原的十进制值·二进制数10000011●符号位1(表示负数)●数值位0000011将数值位转换为十进制0000011(二进制) 3 (十进制)因此[10000011]原表示的十进制数值为-3。2计算[10000011]补的十进制值·二进制数10000011●符号位1(表示负数)3补码的计算步骤第一步取反(除符号位外其余位取反):10000011-11111100第二步加111111100 111111101第三步将补码11111101转换为十进制符号位1(表示负数)数值位1111101第四部将数值位转换为十进制1111101(二进制)125(十进制)因此[10000011]补表示的十进制数值为-125。3、最终答案 B、-3 -1251、 题目关于计算机中的编码下列说法中错误的是2、选项分析1A.对于无符号数原码就是真值分析无符号数没有符号位所有位都用于表示数值。因此无符号数的原码就是其真值。结论正确。2B.正数的反码是其本身分析正数的反码与原码相同。结论正确。3C.负数的反码和补码是不一样的分析负数的反码是其原码的符号位不变其余位取反。负数的补码是其反码加1。因此负数的反码和补码是不同的。结论正确。4D.负数的反码在其原码的基础上各个位取反分析负数的反码是其原码的符号位不变其余位取反。题目中说“各个位取反”,包括符号位这是错误的。结论错误。3、最终答案D.负数的反码在其原码的基础上,各个位取反1、 题目为了简化计算机基本运算电路使加减法都只需要通过加法电路实现这是使用补码的原因2.补码的核心特性补码的核心特性是一个数的补码加上另一个数的补码结果仍然是这两个数的和的补码。这意味着加法和减法可以统一使用加法电路来实现不需要额外的减法电路简化了硬件设计。3.补码的优势1统一加减法加法和减法都可以通过加法电路实现简化了硬件设计。2符号位处理补码的最高位是符号位(θ表示正数1表示负数),符号位可以直接参与运算。3溢出处理溢出结果仍然符合数学规律无需额外处理。4零的唯一表示补码中0只有一种表示形式(全0)。4、最终答案正确✅️1、 题目使用原码进行的计算2(-1)的结果是-32、加法运算当使用原码进行加法运算时直接将符号位和数字部分一起相加但这种方法在处理负数时会导致问题。具体来说当正数和负数相加时符号位的处理并不符合数学上的加法规则因此结果可能不正确。3、现在我们来尝试用原码计算2(-1):1将原码相加2的原码 00000010-1的原码10000001相加结果100000112解读结果结果10000011的最高位是1,表示这是一个负数。其余位0000011转换为十进制是3。因此结果解读为-3。4、最终答案正确✅️1、 题目反码计算加减法加法与减法结果都是正确的只是解决不了-0的问题2、反码加减法1加法当两个加数符号相同时直接对它们的反码进行二进制加法然后取结果的反码作为最终结果的补码(再转换为真值)。当两个加数符号不同时将绝对值较大的数的反码加到绝对值较小的数的反码上(考虑符号位),然后对结果取反码作为最终结果的补码。2减法减法可以转换为加法即a-ba(-b)。因此减法操作可以看作是对被减数和减数的反码(减数先取负即取其反码)进行加法运算。3、-0的问题在反码表示中0和-0的反码是相同的都是000...0(对于n位二进制数)。这意味着在反码运算中无法区分0和-0。当两个正数相加得到0时它们的反码相加后仍然是0,再取反码还是0,表示结果正确。4、无法区分产生的问题由于反码无法区分0和-0,因此在某些情况下(特别是在涉及溢出和符号扩展的运算中),这种无法区分可能会导致问题。例如在符号扩展时我们通常需要保留数的符号位但反码无法明确表示-0的符号这可能导致运算结果的符号信息丢失或错误。5、最终答案正确✅️