内存中原码,反码,补码,查看数值范围,&,或,异或,取反,左右移位操作



1.补码,计算机二进制在内存中如何显示的就是补码

2.查看每种数据类型的范围

如果想输出无符号整型,使用的是UINT_MAX可以得到长度。

3.原码,反码,补码

正数:原码,反码,补码都是相同的

负数:(以-1为例)

原码: 1000 0000 0000 0000 
00000000 0000 0001 -1的原码

反码: 1111 1111 1111 1111 
11111111 1111 1110 -1的反码(符号位不变,其它位取反)

补码: 1111 1111 1111 1111 
11111111 1111 1111 -1的补码(符号位不变,反码基础上加1)

4、操作符

&与,或,异或,取反操作符

参数1

参数2

求&的结果

1

1

1

1

0

0

0

1

0

0

0

0

比如:(7&3)=3

与可以清除某些位数

|:或操作

参数1

参数2

求|的结果

1

1

1

1

0

1

0

1

1

0

0

0

^异或

参数1

参数2

求^的结果

1

1

0

1

0

1

0

1

1

0

0

0

案例:

~取反操作符

1  
取反得 
0

0  
取反得 
1

unsigned char ch1 = 1;    
//0000 0001  1

unsigned char ch2= ~ch1;  
//1111 1110 254

<<
左移,值变成原来的2倍

>>
右移 
值变成原来的1/2

左移位效果

在上面的基础上进行右移位的效果如下:

5、打印二进制文件

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

#include<stdlib.h>

 

void main1()

{

        
intnum;

        
scanf("%d",&num);

 

        
printf("num=%d,&num=%p\n",num,&num);

        
int  data = 1 << 31;//构建一个相与的数据

        

        
for(int i = 1; i <= 32; i++)

        
{

                  
inttemp = num&data;//求出首位相与

 

                  
if(temp == 0)

                  
{

                           
putchar('0');

                  
}

                  
else

                  
{

                           
putchar('1');

                  
}

                  

                  
num<<= 1;

                  
if(i % 4 == 0)

                  
{

                           
printf("");

                  
}

        
}

        
system("pause");

}

 

void main()

{

        
intnum;

        
scanf("%d",&num);

 

        
printf("num=%d,&num=%p\n",num, &num);

        
intdata = 1 << 31;//构建一个相与的数据

        
if(num < 0)

        
{

                  
num= ~num + 1;//求原码  

                  
num= num | data;//设置符号位  

        
}

 

        
for(int i = 1; i <= 32; i++)

        
{

                  
inttemp = num&data;//求出首位相与

                  
if(temp == 0)

                  
{

                           
putchar('0');

                  
}

                  
else

                  
{

                           
putchar('1');

                  
}

 

                  
num<<= 1;

                  
if(i % 4 == 0)

                  
{

                           
printf("");

                  
}

        
}

 

        
system("pause");

}

时间: 2024-12-08 21:35:02

内存中原码,反码,补码,查看数值范围,&amp;,或,异或,取反,左右移位操作的相关文章

原码反码补码

原文:原码反码补码 原码:  -16  =  10010000    1表示符号位(1负0正) 反码:  -16  =  11101111    补码:  -16  =  11110000   原码:   9  =  00001001    1表示符号位(1负0正) 反码:   9  =  00001001   补码:   9  =  00001001   -16 + 9 11110000 +  00001001    11111001(补码)   11111001的反码 10000110 11

java c-如何用C语言或者JAVA实现字长为八位数的二进制定点数转换为源码反码补码?

问题描述 如何用C语言或者JAVA实现字长为八位数的二进制定点数转换为源码反码补码? 老师要求的简单作业,但我是大二才转的计算机科学与技术专业,基础几乎为0!哪位能帮写一个,最好能有注释,这可能有点麻烦,没注释的也可以,我有了源代码可以自己琢磨琢磨!跪谢了在此!

原码, 反码与补码基础知识详细介绍_C 语言

原码, 反码,补码详解 本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,

java原码、补码、反码总结

1.1. java虚拟机整数 在java虚拟机中整数有byte.short.int.long四种 分别表示 8位.16位.32位.64位有符号整数.整数使用补码表示. 所以我们先了解一下原码和反码. 1.1.1. 原码 所谓原码就是符号位加上数字的二进制表示,int为例,第一位表示符号 (0正数 1负数)简单期间一个字节表示 +7的原码为: 00000111  -7的原码为: 10000111 对于原码来说,绝对值相等的正数和负数只有符号位不同. 1.1.2. 反码 一个数如果为正,则它的反码与

java中原码、反码与补码的问题分析_java

1.原码.反码和补码定义 1.原码 将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示).为了简单起见,我们用1个字节来表示一个整数.     +7的原码为: 00000111     -7的原码为: 10000111 2.反码 一个数如果为正,则它的反码与原码相同:一个数如果为负,则符号位为1,其余各位是对原码取反.为了简单起见,我们用1个字节来表示一个整数:     +7的反码为:00000111     -7的反码为: 11111000 3.补码 补码:

二维码来源可查看,O2O营销将有迹可循?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 (文/庄帅)近几个月,腾讯营销QQ动作频频,从最近曝光的一组图片来看,二维码推广.分组群发等一揽子新功能即将推出.起初我不以为然,二维码和群发已经不是什么全新的概念,目前市场上早已有不少软件具备这些功能,但看过截图后,还是觉得值得和大家聊一聊,新功能可以让企业清楚地看到微信新用户的渠道来源,同时还能针对这些不同的来源,分组群发不同的信息.营销

求成本中心报表,查看各个部门发生的费用的取数

问题描述 求成本中心报表,查看各个部门发生的费用的取数,就是他们的数据要从哪几个表查呐,特别是费用是去哪里查.

借贷宝自己的邀请码在哪里查看?

1.下载成功后,安装注册即可获得邀请码,自己的邀请码是GHJU8Z0,需要的朋友可以直接拿去使用. 2.查看自己的邀请码,点击借贷宝"好友"邀请好友,选择邀请的好友,就能查看到自己的邀请码了. 3.下载借贷宝软件后点击注册,会提示输入邀请码,输入最新邀请码即可获得二十元可提现现金奖励.这是最安全的活动参加方式.

三星Galaxy S5内存多少?S5怎么查看内存信息?

1.在下图中我们点击手机中的[应用程序]按钮进入,细节如下图所示.   2.然后进入到万能的三星[设定]菜单中.   3.然后我们在下图的系统中找到[存储]图标,点击进入.   4.现在好了我们会看到我们手机的内存信息包括了SD卡的信息哦.     好了这样我们就可以一目了然的知道你手机空间使用情况了