您的位置:

负数输出c语言,c语言怎样输出负数

本文目录一览:

在c语言中怎么表示负数。

第一位符号位1为负,0为正。 正数的补码和2进制原码是一样的。

负数的补码:

1、先取绝对值|x| ;

2、对|X|+1 ;

3、对|X|+1 取反,就得到它的补码了 。

计算机中存放整型数据都是按补码的形式存放的。

扩展资料:

有符号数的表示方法是由硬件决定,而不是由C决定的。有三种表示方法:

1、二进制原码

0000 0001  表示 1

1000 0001  表示 -1

这个方法有个缺点是有两个零: +0 和 -0。这会引起混淆,而且用两个位组合来表示一个值也有些浪费。

2、二进制补码(最普遍的系统)

区别在于 singned 和 unsigned:

1)如果是无符号字节, 1000 0000 该组合为 128

2)如果是有符号字节, 1000 0000 该组合为 -128

第一种表示数的范围是 0 ~ 255;

第二种表示数的范围是 -128 ~ +127,对于一个二进制补码数取负数,最简单的方法就是取反、加 1。

3、二进制反码

通过反转位组合中的每一位以形成一个数的负数,例如:

0000 0001  表示 1

1111 1110  表示 -1

这种方式也有一个 -0:1111 1111。其范围是 -127 ~ +127。

C语言负数用%u形式输出

%u的参数是指的输出无符号数,1的二进制码是 0000 0001 (八位进制表示的话) 。 -1的表示就是各位求反+1 八位二进制码就是1111 1111 ,你用%u的参数就是输出无符号数,就不考虑最高位了,所以就是 1111 1111的十进制值,就是255 ,16位的计算机同理。

C语言中怎么输出一个负16进制的数

负数用十六进制表示,通常用的是补码的方式表示。

int

a=-3;

在C语言中可以这么输出:printf("%hhx\n",

a);

十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。

正数的补是它本身;负数的补码是它本身的值每位求反,最后再加一。

例如:求-3的十六进制

3的十六进制为0003,3求反之后是C,再加1,成D,所以-3的十六进制就是:FFFD

在C语言里要输出一个负数的值!

type(数的类型)number(你要输出的数);

printf("% +d",number)

例如

int i=-617;

printf("% +d",i);

"+"号是输出符号的