C语言学习笔记:位运算

✨博文作者:烟雨孤舟
喜欢的可以 点赞 收藏 关注哦~~

✍️ 作者简介: 一个热爱大数据的学习者

✍️ 笔记简介:作为大数据爱好者,以下是个人总结的学习笔记,如有错误,请多多指教!

目录

位和字节

二进制

八进制

十六进制

位逻辑运算符


位和字节

1字节(byte)=8比特(bit)
一个英文字符和英文标点占用一个字节,一个中文字符和中文标点占用两个字节。

计算机中的位
  二进制数系统中,每个0或1就是一个位(bit),位是数据存储的最小单位。其中8bit就称为一个字节(Byte)。计算机中的CPU位数指的是CPU一次能处理的最大位数,例如32位计算机的CPU一次最多能处理32位数据,计算机中的CPU位数也称为机器字长,和数据总线(CPU与内部存储器之间连接的用于传输数据的线的根数)的概念是统一的。

二进制

二进制简单来说就是用两个不同的符号 0和1来表示的以2为基数的一个计数系统,是一种机器语言。
十进制转二进制的整数转换:除以2,反向取余数,直到商为0终止
十进制转二进制的小数转换:乘2取整,顺序输出   
                        0.68(10)–>0.10101(8)精确到小数点后5位
                 具体步骤:
                        0.68* 2=1.36 -->1
                        0.36* 2=0.72 -->0
                        0.72* 2=1.44 -->1
                        0.44* 2=0.88 –->0
                        0.88* 2=1.76 -->1
例如123转化成二进制:
123/2=61余1
61/2=30余1
30/2=15余0
15/2=7余1
7/2=3余1
3/2=1余1
1/1=0余1
结果是1101111,反过来就是1111011。
二进制转换为十进制:按权展开求和                                   110.1=(1*2^2)+(1*2^1)+(0*2^0)+(1*2^-1)=4+2+0+1/2=6.5

八进制

八进制是一种以8为基数的计数法,采用0~7八个数字,逢八进1
八进制的数和二进制数可以按位对应(八进制一位对应二进制三位)
十进制转八进制的整数转换:除以8,反向取余数,直到商为0终止
                         796(10)→1434(8)
十进制转二进制的小数转换:乘8取整,顺序输出                       

八进制转换为十进制:按权展开求和      
4*8^2+5*8^1+1*8^0=297(十进制数)。

十六进制

16进制是一种表示数字或数据的方法,它使用了16种不同的符号来表示数字0到15。这些符号包括数字0到9以及字母A、B、C、D、E和F
十进制转八进制的整数转换:除以16,反向取余数,直到商为0终止
十进制转二进制的小数转换:乘16取整,顺序输出                       二八进制转换为十进制:按权展开求和     

位逻辑运算符

与运算:&
两者都为1为1,否则为0
1&1=1,  1&0=0,  0&1=0,  0&0=0
或运算:|
两者都为0为0,否则为1
1|1 = 1,  1|0 = 1,  0|1 = 1, 0|0 = 0
非运算:~
1取0,0取1
~1 = 0, ~0 = 1
异或运算:
两者相等为0,不等为1
1^1=0, 1^0=1, 0^1=1, 0^0=0
移位运算:
<< (左移) 和 >> (右移)

你可能感兴趣的:(C语言,学习,笔记,c语言)