1楼:匿名用户
看输出的无符号整数最高位是否为1,如果是1则是负数
2楼:匿名用户
%x 并不是只是输出正数的
3楼:匿名用户
前面加个负号好了,一%x。
c语言,为什么%o和%x输出的都是无符号数,为什呢不能有负数
4楼:匿名用户
不是说不能有负数,如果使用%x和%o输出时,应该先把你的数据转为二进制的形式,然后再转为8进制或者是16进制,这样转出来的数是不会带+-号的,而是根据实际在内存中存放的数据来显示
c语言中输出16进制数为什么只是用无符号形式呢?
5楼:abc小鸭
不是只用无符号形式的。
c中以8和16进制输出的整数,都是将内存中的各位的值全部按8/16进制输出,包括符号位。
可以试验一下,1和-1的16进制输出结果是不一样。
6楼:匿名用户
楼主说的不错,本来也没注意这个,谢谢提醒了,我看了下书:c中以8和16进制输出的整数,都是将内存中的各位的值全部按8/16进制输出,包括符号位,所以上面那兄弟说的6和-6确实不一样,不信写个程序试验下吧
7楼:匿名用户
谁告诉你只能是无符号的啊?
你用i=16和i=-16输出结果会是一样的嘛?
c语言中以16进制输出时%0x和%x有什么区别?
8楼:
%0x和%x都是以十六进制格式右对齐输出,输出的是无符号数。
在不指定占宽情况下以数据的实际宽度输出,而系统又自动消除左端的无效0,所以%0x和%x在显示效果上没有什么不同。
在指定占宽的情况下,在指定的输出占宽范围内,实际数据宽度不足时用%0x作控制的前面用0补齐,而用%x作控制的前面用空格补齐。如:
//#include"stdafx.h"//ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void)
输出是:
0037
37若实际数据宽度大于指定宽度,则按实际宽度输出。
9楼:匿名用户
标准c语言库函数fprintf/printf格式字符串的转换说明形式是这样的:
%[标志][最小输出宽度][.精度][长度修正符]类型方括号括起来是可选项。
标志是0或多个标志字符,可以是任意顺序,常用有以下几个:
- 左对齐,缺省是右对齐。
+ 带符号的值前面总是有个符号,也就是正数前面有+号,负数前面有-号。
0 输出值的宽度小于最小宽度的话,用0填充,缺省是用空格填充。
0是一个标志字符,意思就是用0填充
10楼:匿名用户
char x=5;
printf("%x\n",x);得到输出5
printf("%0x\n",x);得到输出05
11楼:巨大
你编程试试不就知道了吗。
c语言两个16进制负数a,b,相加为何输出是 printf(“-%x",-(a+b))
12楼:匿名用户
%d整型
输出%ld长整型输出
%o以八进制专数形式输出整属数
%x以十六进制数形式输出整数
%c用来输出一个字符
另外,%x没有符号位,就是说不能表示负数,因此两个负数相加时,需要先将结果变为正数,并在输出时在前面填一个负号,所以是 -%x"
欢迎追问!
c语言中以%x开头的为十六进制整数对吗,怎么理解
13楼:金色潜鸟
以 0x 或 0x 开头的数 为十六进制整数.
例如:int red= 0xff, green=0x80, blue=0xaa;
0xff, 0x80, 0xaa 都是 十六进制整数。
%x -- 是 输出/输入语句里的格式定义。
例如:int y;
scanf("%x",&y); // 以16进制形式输入 整型printf("%x %d",y,y); // %x -- 以16进制形式输出y, %d -- 再以10进制形式输出y。
输入 若键盘 拍入 0x123 或 123 都可以,都表示 是 16进制。
输出:123 291
14楼:匿名用户
%x是在printf或scanf(或是其衍生的fprintf或fscanf)用来做格式控制符的,表示以16进制无符号数的形式显示对应的表列里的整数
15楼:匿名用户
以0x或0x开头的数是16进制数,以0(数值0)开头的是8进制数。
%x是指在输入/输出数据时的格式,比如scanf("%x",&a);,以16进制格式读入数据(这里不需要0x或0x开头)。printf("%0x",a);,把整数a转换为16进制格式显示在屏幕上。
16楼:小马
对!确定
x 表示参数类型为int,输出格式为十六进制整数(不带前缀0x或0x)
printf("%x",n);
c语言题 第21题求详细解释 我知道%x是变成16进制数 但不知道怎么从-1变成ffff了
17楼:盗墓者
%x 和 %o 都是直接输出内存数据,因为 -1 在内存中就存储为 ffff (65535),所以它就直接输出 ffff。类似地,如果用 %o 的话会输出 177777。
18楼:匿名用户
这是补码。
就是说bai,如果数du字(无符号)最大只能zhi是a,也可以是0,那么
dao-b可以表回示为a-b+1,同时正负答数的绝对值都要小于a/2。
例子:数字最大为65535,那么-1就是65535-1+1=65535。
事实上用c求补码就是这样的
int***plement(inti)有了补码,无符号数的运算就容易解决了。
c语言中输出格式说明的问题,比如%d为十进制,%o为八进制,%x为16进制。 那么请问二进制怎么表示啊
19楼:匿名用户
这些表达式使用了c++的iomanip库了~这是c++
2进制转换没必要,应为计算机里流通的都是二进制,不管什么**要在计算机里运算都是要转化成2进制的,这个不用我们特意去做
20楼:
抓住最根本的:c/c++没有提供二进制形式的数据输入、输出功能!
21楼:匿名用户
用itoa把十进制转成二进制的字符串,输出这个字符串就行了
22楼:匿名用户
没有二进制的输出格式
23楼:匿名用户
c里面没有专一二进制输出形式
c语言中 %o以八进制数形式输出整数 %x以十六进制数形式输出整数 二进制用什么符号输出呢
24楼:
c语言中没有2进制的输出符号,可以自己写相关函数实现输出.
c语言。编写程序。把任意十进制整数转化为二进制数。并输出
1楼 饶磊 include void main while a 0 printf 输出的二进制 while i 0 printf d s i printf n c语言问题求教!!!编写一个程序,将任意一个十进制数转换成二进制数,按为存放在数组中,然后输出 2楼 董俊锟 你这数组只有这么长 可以把n定...
如何用JAVA语言将十六进制数转换成二进制数,并输出
1楼 public static void main string args static string hextobin string s 如何用java语言将十六进制数转换成二进制数,并输出 2楼 匿名用户 public class aa system out println bstr 如何用j...
c语言中输出时怎么将非零数字前的零去掉
1楼 匿名用户 int t 0 i int a for i 0 i 7 i 其实就是用一个变量表示出现的非零数字的个数,不是零就说明出现了非零数字,就可以开始输出了 而且楼上最佳答案的 有一个漏洞,之和为0不代表全都是0,如果数组是3 0, 3, 1 1,那就会输出3, 1。这个显然是不对的。 2楼...