关于整型提升与截断的一道题目

简介: 关于整型提升与截断的一道题目

关于整型提升与截断,可以看我的博客

C语言:整型提升_c语言整形提升-CSDN博客

C语言:截断+整型提升+算数转换练习_c语言unsigned-CSDN博客

一、题目

二、题解

char a=101截断

由于101是整型数据,需要32比特位存储空间,而变量a是char类型数据,只能存放8比特位存储空间。因此,需要对整型数据101进行截断:

0000 0000 0000 0000 0000 0000 0110 0101(101原码)

0000 0000 0000 0000 0000 0000 0110 0101(101补码)

0110 0101(char型变量a中截断存放的补码)

a+=27 对变量a进行整型提升(补码的高位补符号位)

0000 0000 0000 0000 0000 0000 0110 0101(char型变量a整型提升后的补码)

0000 0000 0000 0000 0000 0000 0001 1011(27的补码)

1000 0000(a+27经过截断后存放到char型变量a中的补码)

1111 1111 1111 1111 1111 1111 1000 0000(a+27整型提升后的补码)

0000 0000 0000 0000 0000 0000 1100 1000(200的补码)

0000 0000 0000 0000 0000 0000 0100 1000(200+a的补码)

0000 0000 0000 0000 0000 0000 0100 1000(200+a的原码)

转换为十进制为72

此题答案为 D

目录
相关文章
|
8月前
|
存储 C语言 C++
截断&&整型提升&&算数转换
截断&&整型提升&&算数转换
【Leetcode -415.字符串相加 - 434.字符串中的单词数】
【Leetcode -415.字符串相加 - 434.字符串中的单词数】
46 0
【Leetcode -696.计数二进制字串 -697.数组的度】
【Leetcode -696.计数二进制字串 -697.数组的度】
45 0
|
5月前
|
C语言
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
这篇文章展示了如何使用栈(包括顺序栈和链栈)实现将十进制数值转换成八进制数值的方法,通过C语言编程演示了两种栈的实现方式和使用场景。
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
|
8月前
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
8月前
每日一题(づ ̄3 ̄)づ╭❤~(数字在升序数组中出现的次数,整数转换)
每日一题(づ ̄3 ̄)づ╭❤~(数字在升序数组中出现的次数,整数转换)
49 0
|
8月前
leetcode-1446:连续字符
leetcode-1446:连续字符
37 0
|
存储 算法 Java
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
61 0
|
C语言
已知一个整数,如何判断这个整数是无符号的?
已知一个整数,如何判断这个整数是无符号的?
101 0
剑指offer 19. 表示数值的字符串
剑指offer 19. 表示数值的字符串
46 0