C++中如何实现int类型按字节打印输出
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本文小编为大家详细介绍"C++中如何实现int类型按字节打印输出",内容详细,步骤清晰,细节处理妥当,希望这篇"C++中如何实现int类型按字节打印输出"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢
千家信息网最后更新 2025年01月22日C++中如何实现int类型按字节打印输出
本文小编为大家详细介绍"C++中如何实现int类型按字节打印输出",内容详细,步骤清晰,细节处理妥当,希望这篇"C++中如何实现int类型按字节打印输出"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
代码如下:
#includeusing namespace std;int main(){ int i = 128; cout << sizeof(int) << endl; unsigned char* cc = (unsigned char*)&i; for (int j = 0; j < 4; j++) printf("cc: %p \t *cc: %x\n", cc + j, *(cc + j)); system("pause"); return 0;}
输出:
以上是正确代码
以下对代码做改变
unsigned char* cc = (unsigned char*)&i;改为 char* cc = ( char*)&i; //代码如下:#includeusing namespace std;int main(){ int i = 128; cout << sizeof(int) << endl; char* cc = ( char*)&i; for (int j = 0; j < 4; j++) printf("cc: %p \t *cc: %x\n", cc + j, *(cc + j)); system("pause"); return 0;
输出:
输出为什么是ffffff80呢?
char类型是有符号字符型变量还是无符号字符型变量,要看编译器是怎么定义的,不能想当然。char变量为一个字节,8bit,sighed char表示的范围是-128~127,(-128在内存中二进制表示为1000 0000,127在内存中二进制表示为0111 1111),unsighed char表示的范围是0~255.
给 i 赋值128,十六进制0x80,二进制1000 0000,相当于是给char变量赋值-128.
printf()函数的参数%x其含义为Unsigned hexadecimal integer;即输出一个十六进制的整型,而在代码中,%x对应的是char类型,所以此时printf()函数会将char类型隐式转换为int类型。
对于int类型的对象,其值为-128,则其对应的内存值是0xFFFFFF80
所以,在printf()函数中,char类型隐式转换成int类型后,输出就会变成4字节的0xFFFFFF80
读到这里,这篇"C++中如何实现int类型按字节打印输出"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
类型
输出
字节
代码
变量
C++
二进制
内存
函数
文章
字符型
内容
十六进制
字符
符号
范围
j++
妥当
想当然
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发公司如何报税
闵行区节能软件开发厂家直销
2020重庆科教视频网络安全
软件开发思路100例
长宁区正规软件开发定制价格
软件开发基本都是用啥
电网网络安全监控中心职责
剑网3获取服务器就死机
研究校园网络安全的创新之处
龙湾上门回收服务器
莆田市时拓网络技术有限公司
如何下载星宇网站数据库
阿里云 app 服务器
用腾讯服务器做缓冲区
异地数据库会卡吗
网络安全责任承诺书6
深圳市网络安全监察分局领导
拼多多官方服务器迁移
邮箱服务器拒收
qq邮箱服务器设置
张家港无忧网络技术推荐咨询
安卓 smb服务器
网络安全东华软件
公安网络安全大检查
数据库表的数据类型有哪几种
海南澄迈软件开发园区
本地存储json数据库中
网页怎么把图片存进数据库
关于网络安全的句子唯美
linux看服务器配置