| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4945 人关注过本帖
标题:紧急求助,十六进制如何输入
只看楼主 加入收藏
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:9 
紧急求助,十六进制如何输入
题目:将两个数以十六进制的形式输入,转化成十进制相加后,再以十六进制输出
输入:输入多组数据至文件尾结束,求两数之和
输入样例: +A -A
      +1A 12
      1A -9
      -1A -12
      1A -AA
输出样例:0
     2C
     11
     -2C
     -90
问题:不知道该怎么进行输入,+A和-A这些数据应当如何进行输入
搜索更多相关主题的帖子: 十六进制 输入 输出 数据 文件 
2018-11-21 18:37
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:4 
看似是字符串表达形式
2018-11-21 18:49
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:4 
int a;
scanf('%p',&a); //16进制数输入
 printf('%d',a); //十进制输出
 printf('0x%x',a);//16进制输出 }
%p是输入一个十六进制的数 %d是输出一个十进制的数


其他的自己做

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-21 18:51
关耳扛刀
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2018-9-27
收藏
得分:0 
好哒谢谢大佬们!对了,%p是指针的相关内容是吗?还没学到。。。
2018-11-21 18:57
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:0 
回复 4楼 关耳扛刀
刚才说错了
1. 格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x。
2. %p是打印地址的, %x是以十六进制形式打印,完全不同!另外在64位下结果会不一样,所以打印指针老老实实用%p .

[此贴子已经被作者于2018-11-21 19:30编辑过]


学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-21 19:04
fclzss
Rank: 2
等 级:论坛游民
帖 子:32
专家分:11
注 册:2018-11-7
收藏
得分:4 
回复 4楼 关耳扛刀
%p十六进制整数方式输出指针的值,我最近才看到指针,我觉得指针真特么恶心
2018-11-21 19:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:4 
程序代码:
#include <stdio.h>

int main( void )
{
    for( int a,b; scanf("%X%X",&a,&b)==2; )
    {
        int c = a+b;
        if( c < 0 )
            printf( "-%X\n", -c );
        else
            printf( "%X\n", c );
    }
}
2018-11-22 09:11
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:4 
以下是引用Tomorrw_I在2018-11-21 18:51:20的发言:

int a;
scanf('%p',&a); //16进制数输入
 printf('%d',a); //十进制输出
 printf('0x%x',a);//16进制输出 }
%p是输入一个十六进制的数 %d是输出一个十进制的数


其他的自己做

十六进制输入应该用
%x %X
%i(需要输入前缀 不符合题目要求 仅用于说明)
不应该用 %p

[此贴子已经被作者于2018-11-22 11:01编辑过]


https://zh.
2018-11-22 10:59
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:0 
回复 8楼 lin5161678
粗心了

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-22 11:06
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:4 
以下是引用Tomorrw_I在2018-11-21 18:51:20的发言:

int a;
scanf('%p',&a); //16进制数输入
 printf('%d',a); //十进制输出
 printf('0x%x',a);//16进制输出 }
%p是输入一个十六进制的数 %d是输出一个十进制的数


其他的自己做

16进制的输出是这样的 printf("%#x",a);
还有,无论是scanf还是printf中都是格式控制字符串,用双引号括起来,不是单引号,单引号括起来的是字符,而你写的又是字符串。
2018-11-23 10:48
快速回复:紧急求助,十六进制如何输入
数据加载中...
 
   



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

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