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

学习C语言——体会计算机中的0和1

/*
    把hello隐写入一个整型数组,这个小程序可以考察是否清楚数据在内存中存储的具体细节。
    具体的说,int类型在小端机器上的存储方式是高位在高地址,低位在低地址,从视觉习惯上和我们的日常书写习惯相反;
    char类型占用一个字节的存储空间,它不区分大端和小端,是顺序存储的,和阅读顺序相同,当
我们根据这个规律进行转换后,就可以把一段字符串写入一个数组,当我们以字符串输出的时候,就可以看到隐藏在整型数组中的字符。
    这个功能扩展后,可以让一个整型数组存储任意的字符串。
    同时,我们也会想到,如果我把字符串以无符号整型的方式,每4个字节读取出来,组成一个数组,是否就完成了这种隐写呢?
    在现在的MySQL数据库字符编码中,utf8mb4是默认字符集,我想选用这个字符集,除了能够包含完整的世界范围内的字符外,还带来了一种处理起来的方便性,那就是可以把它当作一个整型数来看待。处理起来更加方便。
*/

#include <stdio.h>int main(int argc, char** argv){int a[3][3][4]={0x6c6c6568,0x6f,'\0','l','o','\0',0,2,3,3,3,0,4,4,4,4,5,65,5,5,6,6,6,0,7,7,7,7,8,8,8,'h','e','l','l','o'};char* str=(char*)a;int* p=(int*)a;for(int i=0;i<3*3*4;i++){printf("%x ", *(p+i));}for(int i=0;i<3;i++){printf("%s\n", str);}return 0;
}

       给大家留一个问题,如果数组中的第三个整型数不是‘\0’,输出会有问题吗,为什么?

如果你知道答案,欢迎给我留言,点赞,一起探讨有趣的事情。

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

相关文章:

  • PyTorch官网demo解读——第一个神经网络(1)
  • 升华 RabbitMQ:解锁一致性哈希交换机的奥秘【RabbitMQ 十】
  • vue3 element-plus 日期选择器 el-date-picker 汉化
  • 剑指 Offer(第2版)面试题 35:复杂链表的复制
  • 自定义指令Custom Directives
  • 预测性维护对制造企业设备管理的作用
  • 华为、新华三、锐捷常用命令总结
  • 链路追踪详解(四):分布式链路追踪的事实标准 OpenTelemetry 概述
  • Node.js 工作线程与子进程:应该使用哪一个
  • python matplotlib 三维图形添加文字且不随图形变动而变动
  • Ubuntu设置kubelet启动脚本关闭swap分区
  • MySQL数据库存储
  • verilog语法进阶,时钟原语
  • 案例069:基于微信小程序的计算机实验室排课与查询系统
  • C语言:将三个数从大到小输出
  • 基于Hadoop的铁路货运大数据平台设计与应用
  • Java基础题2:类和对象
  • 冒泡排序学习
  • LeetCode(65)LRU 缓存【链表】【中等】
  • 网站提示“不安全”
  • 【Linux】驱动
  • Java研学-HTML
  • SpringBoot之响应的详细解析
  • redis:四、双写一致性的原理和解决方案(延时双删、分布式锁、异步通知MQ/canal)、面试回答模板
  • 智能优化算法应用:基于动物迁徙算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • illuminate/database 使用 五
  • 武汉灰京文化:益智游戏的教育与娱乐完美结合
  • arcgis api for js 中的query实现数据查询
  • AcWing 1250. 格子游戏(并查集)
  • CSS对文本的简单修饰