c语言短整型的低四位反转问题 求助大佬

供稿:hz-xin.com     日期:2025-01-12
C语言:短整型的低四位反转问题(输入输出看说明),咋编?

题目肯定是在早期的C环境下,因为早期的int是16bit,所以才把8bit的数据叫“短整型”;以后int是32bit了,所以实际上题目是说把一个char型数据进行处理。
按照说明,这也不叫“反转”,应该叫按位取反;因为“反转”的意思是把1234二进制位倒过来,即若是1101则变成1011,而按此题则应输出0010。

代码文本:
#include "stdio.h"
int main(int argc,char *argv[]){
char ch;
printf("Please enter a letter...
");
if(scanf(" %c",&ch)==1 && (ch>='A' && ch='a' && ch<='z'))
printf("0x%x
",ch^0x0F);
else
printf("Input error, exit...
");
return 0;
}

改这里: str[i]=str[i]^07;

#include <stdio.h>


int main()

{

    char c=getchar();

    printf("%#hhx",c^0x0F);

    return 0;

}



题目来源:LeetCode题库
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

例子1:
输入: 123
输出: 321

例子2:
输入:-123
输出:-321

例子3:
输入:1230
输出:321

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

最佳答案:按照说明,这也不叫“反转”,应该叫按位取反;因为“反转”的意思是把1234二进制位倒过来,即若是1101则变成1011,而按此题则...

c语言短整型的低四位反转问题 求助大佬
int main(){ char c=getchar();printf("%#hhx",c^0x0F);return 0;}

C语言:短整型的低四位反转问题(输入输出看说明),咋编?
题目肯定是在早期的C环境下,因为早期的int是16bit,所以才把8bit的数据叫“短整型”;以后int是32bit了,所以实际上题目是说把一个char型数据进行处理。按照说明,这也不叫“反转”,应该叫按位取反;因为“反转”的意思是把1234二进制位倒过来,即若是1101则变成1011,而按此题则应输出0010。代码...

什么是大端模式和小端模式?
在计算机的内存管理中,大端模式和小端模式是两种不同的字节顺序存储方式。当我们考虑32位整数0x12345678在不同类型变量中的存储时,它们的差异表现如下:在大端模式下,整型变量(int)的存储顺序为:地址偏移0x00:最高字节(MSB)OP0存储12,最低字节(LSB)OP3存储78。 地址偏移0x01:次高位字节OP1...