| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2254 人关注过本帖
标题:union的使用,字符怎么打印出来的?求助
取消只看楼主 加入收藏
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:4 
union的使用,字符怎么打印出来的?求助
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
    #include <stdio.h>

    union hiddenMessage {
        int  ints[6];
        char chars[21];
    };

    int main() {
        union hiddenMessage intCharacters = {{1853169737, 1936876900, 1684955508, 1768838432, 561213039, 0}};

        printf("[");
        // only go to 18 because 1 byte is for the terminating 0 and we don't print the last in the loop
        for(int i = 0; i < 19; ++i){
            printf("%c,", intCharacters.chars[i]);
            //printf("%d, ", intCharacters.chars[i]);
        }
        printf("%c]\n", intCharacters.chars[19]);
       // printf("%d\n", intCharacters.chars[19]);
        printf("%s\n", intCharacters.chars);
    }

右侧打印的字符怎么得来的? I对应ascii码73,我怎么找不到??总之完全没有思路哦,请教各位大神

[此贴子已经被作者于2017-3-28 15:59编辑过]

2017-03-28 15:42
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
收藏
得分:0 
回复 2楼 吹水佬
图片附件: 游客没有浏览图片的权限,请 登录注册

大神回复真快呀!
0x41424344是地址吗?我觉得自己有关键点没理解,。神奇的输出了字符~~~

跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-03-28 16:24
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
收藏
得分:0 
回复 4楼 吹水佬
谢谢!~~明白了。谢谢大神耐心回答,我真的很菜

跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-03-28 17:29
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
收藏
得分:0 
回复 5楼 renkejun1942
{1853169737, 1936876900, 1684955508, 1768838432, 561213039, 0}

6e752049  73726564   646e6174    696e5520    21736e6f  0

6e ---  n
75 ---  u
20 ---  空格
49 ---  I

73 ---  s
72 ---  r
65 ---  e
64 ---  d

64 ---  d
6e ---  n
61 ---  a
74 ---  t

69 ---  i
6e ---  n
55 ---  U
20 ---  空格

21 ---  !
73 ---  s
6e ---  n
6f ---  o

0  ---  NULL

大神你的回答真是详细呀,解决了我的问题。
他的字符输出顺序很有意思----!!

一个8位字节刚好容下一个两位16进制数,一个整形4个字节被分解为4个两位16进制数,对应4个字符
int 4byte ---------4 * char 1byte ----------4 * 两位16进制数--------4* 字符
对吧??

[此贴子已经被作者于2017-3-28 18:13编辑过]


跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-03-28 18:01
sharplong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:121
注 册:2017-3-27
收藏
得分:0 
回复 8楼 renkejun1942
这是学习C时候在网上找的代码,我自己不是很理解。并不是我本人写的。

跟据科学研究呢,拥有一个良好的头像呢,有助于提高帖子关注度,和被友好对待的可能性:)准确来说呢,其实,我是一个演员....和兼职汽车维修员
2017-03-28 19:45
快速回复:union的使用,字符怎么打印出来的?求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019773 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved