❶ c语言取反符号
我运行的结果是:-11
负数在计算机里表示成反补码
取反加1:反过来就是 -10-1 = -11
位运算操作会包括符号位
❷ C语言中取反运算符'"!"如何使用
运算符"!"是逻辑非运算符;"~"才是按位取反运算符。
经过"!"运算后,运算结果只有0或1;而经过"~"运算后,结果有多种,取决于操作数。
下面通过实例来介绍这个运算符的使用方法:
inta=10,b,c;
b=!a;//运算后b=0,因为a不等于0(即为真),所以取非后等于0(为假)
c=~a;//运算后c=5,因为a的二进制位1010,按位取反后变为0101(即等于5)
❸ C语言中取反的问题
1000
0000
0001
0100:原码
-20
1111
1111
1110
1100:补码
-20
0000
0000
0001
00
11:补码取反
19
计算机里存负数是用补码表示的,取反是反补码取返,如上所示,补码取反,连符号位一起变反,成了19;
❹ C语言中的取反是什么意思啊
我感觉是这么回事,0x11二进制是表示是00010001,~之后是11101110,转化为十六进制后0xEE,这是在TC中整形2个字节,而在VC中整形是4个字节,所以 0x11转化为二进制时前面应该在补八个零,即0000000000010001~后为1111111111101110转为为十六进制后就为0xFFEE了。
❺ C语言中的取反运算
int在VC里是4字节,也就是32位,所以那30个高位的0被取反成1了,当然不是1。
要得到1,那把a与3做“与”操作,就把高位的30个位数全部清0了。
# include "stdio.h"
main()
{int a;
a=2;
a=~a;
a=a&3;
printf("%d",a);
}
❻ c语言,按位取反。
题目有问题 如果是 ~16= -17 的话就是这样
0001 0000 = 16
~16 = 1110 1111 (计算机内存中就是这样的,补码)
1110 1111 = 1001 0001 (补码转换源码就是等于 -17,将补码全部取反 +1 (注意最前面的1是符号位,不能省去))
如果不要符号位的话 就全部有效 (一个个乘下去 ) 有符号位 前面的1就代表负数
❼ 用二级C语言编一个函数:将数组各元素取反(在有悬赏那回答)
#include <stdio.h>
void f(int *p,int x)
{
for(int i=0;i<x;i++)
{
printf("%x-",p[i]);
p[i]=~p[i];
printf("-%x\n",p[i]);
}
}
int main()
{
int xx[5]={6,2,3,4,5};
f(xx,5);
return 0;
}
❽ c语言中的取反
这不叫取反!先把数字转换成字符串,调整字符串位置,然后转换成数字输出。
❾ c语言中‘取反加一’是怎么回事啊
在嵌入式开发中,我们一般选用C语言作为开发语言。一个主要的原因在于C语言提供了大量的运算符,比如我们对硬件的操作一般涉及到对位的操作,而C语言就提供了这样的运算符,这是其他语言不具备的。
二、C语言运算符有哪些
C语言有大量的运算符,可大致分为以下几类:括号与结构体符号、单目、算术、移位、关系、位、逻辑、三目、赋值、逗号。
括号与结构体符号:括号包括()、[],结构体符号指的是结构体成员引用时的符号“->”、“.”,他们也是运算符,并且优先级与括号相当,这也是我们把两者放在一起讨论的原因。至于如何使用则是结构体的内容。
单目运算符:单目运算符有很多,例如:!逻辑非、~按位取反、++自增、--自减、+正、-负、&求地址运算符、*间址运算符、sizeof()求所占字节数、(类型名)强制类型转换。这些运算符的运算对象只有一个。其中&与*属于指针内容,我们不做细说。逻辑非我们在下面逻辑运算符时说明,按位取反我们在下面位运算符时说明,强制类型转换我们在格式转换时说明。Sizeof()首先不是函数,用于求类型的所占字节数。例如:int a;sizeof(a)或sizeof(int)得到的值都是4,即整型占4个字节。()中可以是变量也可以是数据类型也可以是字符串常量。例如:char ch[20]=”hello”;我们定义字符数组来保存字符串,当我们要求字符串长度时我们发现sizeof(ch)得到的大小为20,即数组的大小,那么怎么求字符串长度呢?我们可以用字符串的相关函数strlen(),但是也可以sizeof(“hello”);它的结果为6,即计算字符串最后的空字符’\0’。++与--是我们经常用到的运算符,简单来说,有以下四种情况:
a=10,a++ ++在a的后面,先把a的值赋值给表达式,a在自加1。即 a=10,b=a,a=a+1
a=10,++a ++在a的前面,a先自加1,再把a的值赋值给表达式。即 a=10,a=a+1,b=a
a=10,a-- --在a的后面,先把a的值赋值给表达式,a在自减1。即 a=10,b=a,a=a-1
a=10,--a --在a的前面,a先自减1,再把a的值赋值给表达式。即 a=10,a=a-1,b=a
上例中a++/++a/a--/--a代表表达式,我们可以理解为:b=a++/b=++a/b=a--/b=--