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");

}

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

  1. 计算机中原码反码补码的应用场合,反码

    反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理.在计算机内,定点数有3种表示法:原码.反码和补码. 中文名 反码 外文名 Inve ...

  2. 浅谈 -128的原码 反码 补码

    以java中byte表示:2字节 8位,-128 首先首位1表示负数,128的正数为1000 0000(其实是-128),然后拼接为1 1000 0000,大于8位,则取低8位,为1000 0000, ...

  3. java基础-原码反码补码

    本文帮助理解,Java中原码反码补码的原理 1:原码反码补码,基础概念和计算方法 对于一个数,计算机需要使用一定的编码方式进行存储.原码反码补码是计算机存储一个具体数字的编码方式. 原码: 第一位表示 ...

  4. 源码 反码 补码详解(为什么计算机存储数值为补码形式?)

    一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放 ...

  5. 大端 小端 原码 反码 补码 及内存中的表现

    小端 和 大端 在内存中存储时,都是从内存的低地址往高地址存,即0x00000000 -> 0xffffffff 以汉字 "严"为例,Unicode码是4E25,需要两个字节 ...

  6. C语言基础(二)—— 常量与变量、数据类型、进位制、关键字、原码反码补码、限定符、字符串格式化输入输出

    1. 常量与变量 1.1 关键字 1.2 数据类型 数据类型的作用:编译器预算对象(变量)分配的内存空间大小. 1.3 常量 在程序运行过程中,其值不能被改变的量 常量一般出现在表达式或赋值语句中 整 ...

  7. 10.原码 反码 补码

    +7的原码:0000 0111 -7的原码:1000 0111   第一位0代表正数,1代表负数,第一位为符号位 +7的反码:0000 0111 正数反码和原码一样 -7的反码:1111 1000   ...

  8. Debug和release版本区别 原码反码补码的转换及存储

    #define _CRT_SECURE_NO_WARNINGS 1  //Debug和release版本区别(VS2019版) //例子 #include<stdio.h> //int m ...

  9. 【濡白的C语言】数据的存储(大小端模式,原码反码补码,浮点数的存储,浮点型精度缺失的原因)

    前言 很多学习C语言之后就会对各种类型感到很烦,但是数据的类型具有相当的意义.首先是类型决定了大小,即该数据在内存中开辟的空间大小:同时不同的类型还决定了数据存储的方式,相同的数据,存入整形与浮点型方 ...

  10. c语言原码 补码 反码,C语言 原码--反码--补码

    //原码,反码,补码 #include #include //数值的表示方法--原码.反码和补码 //原码:最高位为符号位,其余各位为数值本身的绝对值 //反码: //正数:反码与原码相同 //负数: ...

最新文章

  1. 讨论是学习最有效的方法
  2. 【选摘】如何提高月结事务的性能
  3. 创意赛第二季又来了,PaddleHub人脸关键点检测实现猫脸人嘴特效
  4. 【知识小课堂】mongodb 之 查询关键词使用
  5. SCF: 简单配置门面
  6. Cocos Creator JS 获取当前日期与时间
  7. Flask 使用abort方法返回http错误码、http错误响应信息
  8. 【转】人脸识别:AI产品经理需要了解的CV通识
  9. 并行接口8255芯片
  10. 微信营销的总纲领:沐风微信水库理论 2.0
  11. 5G工作原理详解(解释图解)
  12. matlab 函数 平移,MATLAB图线先下平移
  13. namedtuple使用
  14. pyecharts基本图表1——Calender(日历图)笔记
  15. 标称型和数值型的区别
  16. Smart210学习记录(十二) 之块设备
  17. LabVIEW数据采集系统-队列
  18. Java对接bacnet
  19. 什么是企业内容管理?
  20. 爱好高科技之人脸识别模块

热门文章

  1. 业务总结004:检验项目时间轮实践与库存实现方案
  2. JavaScript实现计算需要更改的位数,以便将 numberA转换为 numberB(bitsDiff)算法(附完整源码)
  3. OpenCASCADE绘制测试线束:几何命令之展示
  4. wxWidgets:wxSpinCtrl类用法
  5. boost::test模块测试从数据集对主测试套件的访问
  6. boost::histogram::axis::option用法的测试程序
  7. boost::r_c_shortest_paths用法的测试程序
  8. boost::graph模块实现读写graphviz的测试程序
  9. boost::geometry::geometry_id用法的测试程序
  10. boost::endian::detail::is_scoped_enum用法的测试程序