int a=1,b=~a;请问b的值是多少?

int a=1,b=~a;

首先计算机中存储的是二进制补码。

把1转为二进制:0000 0001  ->反码  0000 0001 ->补码   0000 0001 ->取反  1111 1110  ->反码  0000 0001 ->补码  0000 0010 ->转为十进制  -2

b= -2

时间: 2024-07-29 12:55:41

int a=1,b=~a;请问b的值是多少?的相关文章

bool、int、float、指针变量与“零值”比较的if语句

if语句是C++/C语言中最简单.最常用的语句,然而很多程序员用隐含错误的方式写if语句.本节以"与零值比较"为例,展开讨论. 这里是"零值"而不是"0" 4.3.1布尔变量与零值比较 [规则4-3-1]不可将布尔变量直接与TRUE.FALSE或者1.0进行比较. 根据布尔类型的语义,零值为"假"(记为FALSE),任何非零值都是"真"(记为TRUE).TRUE的值究竟是什么并没有统一的标准.例如Visua

【C语言】编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。

/*编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数. 例如:输入传入(0 , 5)函数返回5,传入(10 , 9)函数返回1,传入(12 , 4)函数返回4 */ #include <stdio.h> int yue(int a,int b) { int temp; int n; if (a>b) { temp=a; a=b; b=temp; } n=a; if(a==0) return b; else while(n!=0) { if( a%n==0 &&

程序猿之---C语言细节27(函数无参数时细节、函数默认返回int型证明、return默认还回值、void指针++操作)

主要内容:函数无参数时细节.函数默认返回int型证明.return默认还回值.void指针++操作 一.函数无参数时细节 函数无参数时应该加上void 在c语言中一个函数 void f(); 在使用时传递参数f(2);没有报错,而在c++中则会报错 最好加上void来明确函数是无参数的 二.函数默认返回类型为int型 见下面程序 三.return默认返回1 细节:return不可返回执行栈内存中的指针,因为该内存在函数体结束时自动销毁 四.void 指针++操作 void *p; p++; //

零值比较--BOOL,int,float,指针变量与零值比

最近好多新东西需要学,好久没有写点什么了,忽然发现一个基础的基础,借来分析一下,共享-(PS:这不是我最近学的重点) 这是一个C++最基础.每个程序员都会碰到的问题.若只在大学里看过几本基础的编程入门书,看见这道题可能会觉得奇怪,不就是和0 比较吗,直接拿出来比就是了,其实不是的(PS:高手可以无视). 首先给个提示:题目中要求的是零值比较,而非与0进行比较,在C++里"零值"的范围可就大了,可以是0.0.0.FALSE或者"空指针". //------------

int、long、long long 的取值范围

unsigned   int   0-4294967295   int   2147483648-2147483647 unsigned long 0-4294967295long   2147483648-2147483647 long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long long的最大值:1844674407370955161 __int64的最大值:9223372036854

&lt;转&gt;零值比较--BOOL,int,float,指针变量与零值比较的if语句

下面这个是我在一本C语言书上看到的题目 写出float类型的变量i和零值比较的语句: if((x >= -0.00001)&& (x <= 0.00001) ) 不可以将浮点变量用"=="或"!="与数字进行比较,应该设法转化成">="或者"<="之类的形式. 这是程序员面试的一道常见题,也是个C++基础问题.若只在大学里看过几本基础的编程入门书,看见这道题可能会觉得奇怪,不就是和0比较

C#用int的0--31位表示32个bool值,int拆分成bool数组

使用位运算,直接上代码 public void IntToBoolArray() { bool[] bArray = new bool[32]; int inputNum = 3; int endNum; for(int i= 0;i<32;i++) { endNum = 1 << i; if(endNum == (endNum & inputNum)) { bArray[i] = true; }else { bArray[i] = false; } Debug.Log(bArr

分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)

BOOL型变量:if(!var) int型变量: if(var==0) float型变量: const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON) 指针变量: if(var==NULL)

C/c++中 int、long、long long等取值范围

Mark-- unsigned   int   0-4294967295   int   -2147483648-2147483647 unsigned long 0-4294967295long   -2147483648-2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long long的最大值:18446744073709551615  //20位 __int64的最