C语言学习笔记——二进制和位运算

简介: C语言学习笔记——二进制和位运算

4.1进制

4.1.1进制介绍

  1. 二进制:0,1 ,满 2 进 1
  2. 八进制:0 - 7,满 8 进 1,以前缀0表示。
  3. 十进制: 0 - 9,满 10 进 1
  4. 十六进制:0 - 9 以及 A - F,满 16 进 1,以前缀0x或ox表示。其中 A - F 分别对应 10 -15
#include<stdio.h>
void main() {
  int a = 97;//十进制
  int b = 0141;//以0开头,表示八进制
  int c = 0x61;//以0x开头,表示十六进制
  int d = 0X61;//以ox开头,表示十六进制
  printf("a = %d\tb = %d\tc = %d\td = %d", a, b, c, d);
}

7a474b478003469c8283c2d51747b1b1.png

4.1.2其他进制转十进制

4.1.2.1二进制转十进制

从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和

1011 = 1 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3 = 1+2+0+8=11

4.1.2.2八进制转十进制

从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和

0123 = 3 * 8 ^ 0 + 2 * 8 ^ 1 + 1 * 8^2 = 3+16+64=83

4.1.2.3十六进制转十进制

从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和

0x34A = 10 * 16 ^ 0 + 4 * 16 ^1 + 3 * 16^2 = 10+64+768=842

4.1.3十进制转其他进制

4.1.3.1十进制转二进制

将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制

56 => 111000

4.1.3.2十进制转八进制

将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制

156 =>234

4.1.3.3十进制转十六进制

将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。

356 => 164

4.1.4二进制转八进制和十六进制

4.1.4.1二进制转八进制

从低位开始,将二进制数每三位一组,转成对应的八进制数即可

11010101 => 0325

4.1.4.2二进制转十六进制

低位开始,将二进制数每四位一组,转成对应的十六进制数即可

11010101 => 0xD5

4.1.5八进制和十六进制转二进制

4.1.5.1八进制转二进制

将八进制数每1位,转成对应的一个3位的二进制数即可

0237 => 10011111

4.1.5.2十六进制转二进制

将十六进制数每1位,转成对应的4位的一个二进制数即可

0x23B = 1000111011

B=11=> 1011

4.2原码、反码、补码

  1. 二进制的最高位是符号位: 0表示正数,1表示负数
  2. 正数的原码,反码,补码都一样
  3. 负数的反码=它的原码符号位不变,其它位取反
  4. 负数的补码=它的反码+1
  5. 0的反码,补码都是0
  6. 在计算机运算的时候,都是以补码的方式来运算的

4.3位运算符

474c151d98978954fa33eb5e28ee510.png


相关文章
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
946 1
|
存储 算法 安全
C 语言中的位运算:挖掘底层计算的高效力量
位运算是C语言中直接操作二进制位的一种技术,能高效处理底层数据,广泛应用于优化算法、硬件编程等领域,是掌握C语言高级特性的关键之一。
|
存储 网络协议 算法
【C语言】进制转换无难事:二进制、十进制、八进制与十六进制的全解析与实例
进制转换是计算机编程中常见的操作。在C语言中,了解如何在不同进制之间转换数据对于处理和显示数据非常重要。本文将详细介绍如何在二进制、十进制、八进制和十六进制之间进行转换。
3054 6
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
394 1
|
存储 C语言
C语言程序设计核心详解 第十章:位运算和c语言文件操作详解_文件操作函数
本文详细介绍了C语言中的位运算和文件操作。位运算包括按位与、或、异或、取反、左移和右移等六种运算符及其复合赋值运算符,每种运算符的功能和应用场景都有具体说明。文件操作部分则涵盖了文件的概念、分类、文件类型指针、文件的打开与关闭、读写操作及当前读写位置的调整等内容,提供了丰富的示例帮助理解。通过对本文的学习,读者可以全面掌握C语言中的位运算和文件处理技术。
425 5
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
373 5
|
文件存储 C语言
|
存储 机器学习/深度学习 编译器
C语言代码学习笔记
<编程精粹:编写高质量C语言代码> 读书笔记
|
C语言
C语言---二进制位置0或者置1
C语言---二进制位置0或者置1
460 1
|
程序员 编译器 C语言
C语言中的位运算技术详解
C语言中的位运算技术详解
881 1