位运算与二、八、十、十六进制

第一台计算机:ENIAC,出生于1946年2月14日宾夕法尼亚大学;byte=8bit;

位运算符

  • 位运算是直接对二进制进行运算
  • << :符号位不动,右边补0
  • .>>:正数补0,负数补1(符号位不动)
  • .>>>(无符号右移):无论正负都补0
  • 位与&:只有1&1的时候是1
  • 位或|:只有0|0的时候是0,否则是1
  • 异或^:同则为0,不同则为1
  • 反码~:求反码

举个栗子

  • 6的二进制为:00000000 00000000 00000000 00000110

    • 6<<2即为:00000000 00000000 00000000 00001100

    • 6>>2即为:00000000 00000000 00000000 00000001

    • 6>>>2即为:00000000 00000000 00000000 00000001

  • - 6的二进制为:10000000 00000000 00000000 00000110

    • - 6<<2即为:10000000 00000000 00000000 00001100最高符号位不变
    • - 6>>2即为:10000000 00000000 00000000 00000001最高符号位不变
    • - 6>>>2即为:00100000 00000000 00000000 00000001无符号移位就算是符号位也要动

二进制

当前计算机系统基本使用的是二进制系统,数据在计算机中主要是以补码的形式储存,计算机中的二进制是一个非常微小的开关1表示开,0表示关(布尔值)

  • 缝二进一、借一当二、基数为二

    0(0)、1(1)、10(2)、11(3)、100(4)、101(5)、110(6)、111(7)、1000(8)、1001(9)、1011(10)、1111(11)、10000(12)

八进制

一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进一。一些编程语言中常常以数字0开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位)

十进制

数学中通常使用十进制进行计算、十进制计算可以用手指来数、满十进一

1/2/3/4/5/6/7/8/9/10/11/12

十六进制

计算机中数据的一种表示方法,它是由0-9,A-F组成,字母不区分大小写,与十进制对应:0-9=0-9、A-F=10-15;N进制的数可以使用0~(N-1)的数来表示,超过9的用字母A-F

0(0)--1(1)--2(2)--3(3)--4(4) --5(5) --6(6)--7(7)--8(8)--9(9)--A(10)--B(11)--C(12)--D(13)--E(14)--F(15)--A1(16)

进制转换

二进制(B)八进制(O)十进制(D)十六进制(H)最后一位表达

二进制转十进制B-D

  • 1100(从右往左):0乘2^0+ 0乘2^1+ 1乘22+1乘23=12

十进制转二进制D-B

  • 54:54/2(%0) 27/2(%1) 13/2(%1) 6/2(%0) 3/2(%1) 1/2(%1)=011011反推得出二进制为:110110

二进制转十六进制B-H

  • 11001011=(1x20+1x21+0x22+1x23)(0x20+0x21+1x22+1x23)=12-11=CB(H)
  • 101111=(0x20+1x21+0x22+0x23)(1x20+1x21+1x22+1x23)=15-2=2F(H)

十六进制转二进制H-B

  • A1={A=10(D)=1010} {1=0001(数字不足4位时往前补0) =10100001(B)
  • B9={B=11(D)=1011}{9=1001}=10111001(B)

十六进制转十进制H-D

  • A1:1x160+10(A)16^1=1+160=161(D)
  • B3:3x160+11x161=3+176=179(D)

十进制转十六进制D-H

  • 162:162/16=除数为10余数为2(10=A)=A2(H)
  • 176:176/16=除数为11余数为0(11=B)=B0(H)

二进制转八进制B-O

  • 1110110=001(1) 110(6) 110(6) = 1 6 6(O)

__EOF__

本文作者一只小狐疑
本文链接https://www.cnblogs.com/Huyi-1208/p/14914446.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   一只小狐疑  阅读(692)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示