当前位置: 首页 > news >正文

【C语言】【数据存储】用%u打印char类型?用char存128?

1.题目一:

#include <stdio.h>
int main()
{char a = -128;printf("%u\n",a);return 0;
}

%u 是打印无符号整型

解题逻辑:
1. 原反补互换,截断
-128
原码:10000000…10000000
补码:11111111…10000000

(char类型占 1 个字节,8 个bit位)截断:10000000

2.整型提升:
char 默认 signed char 所以高位补符号位:11111111…10000000

3.%u打印的结果:
%u 是打印无符号整型,那么补码 11111111…10000000 中第一个 1 不是符号位,此时原码与补码相同,打印出来的就是二进制11111111…10000000所代表的十进制数:4294967168

在这里插入图片描述

2.题目二:

#include <stdio.h>
int main()
{char a = 128;printf("%u\n",a);return 0;
}

char 类型的存储范围是 -128~127 那么存了 128怎么打印?
必须将 128从低位截断
截断后是 10000000
整型提升:11111111…10000000
(整型提升时,只与变量类型有关,有符号的往高位加符号位,无符号的高位补 0!!)
所以下面的步骤和上一题一样
结果也是4294967168
在这里插入图片描述

http://www.lryc.cn/news/168760.html

相关文章:

  • git-git命令汇总
  • 自定义实现简易版ArrayList
  • React中的Hooks--useReducer()
  • DM@数理逻辑@命题公式及其赋值@真值表@公式分类
  • HTTP协议(超级详细)
  • leetcode做题笔记135. 分发糖果
  • Oracle数据库体系结构(三)_逻辑结构
  • 在 Python 中计算两个 GPS 点之间的距离
  • 影刀RPA解决WPS不存在的问题
  • vue动态路由切换刷新保留历史路由搜索条件数据
  • 免费:CAD批量转PDF工具,附下载地址
  • 无涯教程-JavaScript - FACT函数
  • UART 协议
  • MySql中分割字符串
  • Ubuntu 22.04安装过程
  • 【算法|虚拟头节点|链表】移除链表元素
  • express静态路由匹配引发的404错误
  • VHOST-SCSI代码分析(4)VHOST KICK机制
  • Docker Volume(存储卷)
  • 【毕设选题】opencv 图像识别 指纹识别 - python
  • 阿里云无影云电脑使用初体验:真的好用吗?
  • 无涯教程-JavaScript - FLOOR.MATH函数
  • Dubbo3基础使用
  • Android 图片加载框架Glide源码详解
  • 知识竞赛活动舞台搭建需要多少钱
  • 07set注入级联属性和特殊字符及表达式语言
  • 用AI在小红书做早教启蒙,2个月涨粉11.7万,获赞10万的新流量玩法
  • Recommender Systems in the Era of Large Language Models (LLMs)
  • 红心向阳 百鸟朝凤
  • C语言自己实现一个memcpy函数