一、基础知识

  a、1字节=8位(1Byte=8bit)
     二进制表示:11111111
     十进制表示:255

计算机内部约定用多少字节来规范数值,比如红绿蓝三色在计算机中只分配了一个字节,一个字节有八位,每一位只能储存1或0,计算机只认识二进制(0与1),所以就是2的八次方,计算机中约定从0开始计数,所以是0至255,长度是256.

8位 1 1 1 1 1 1 1 1
2的N次方值 7 6 5 4 3 2 1 0
128 64 32 16 8 4 2 1
10进制最大数 255=128+64+32+16+8+4+2+1
10进制最小数 0
最大长度 256=0至255,也就是2的8次方

  b、在16进制中,每位16进制占用4bit

十进制:255 
二进制:11111111 

16进制,每位占用4bit

 1111  1111
16表进表示  F  F

二、在C#中,如何把二进制转换为10进制与16进度

十进制数5002

a、二制进值,输出:1001110001010

b、十六进值,输出:138a

c、按位输出:[0]=138、[1]=19、[2]=0、[3]=0   注意:每位=8bit,4位一组,4*8=32位,二进制完整表示为:00000000 00000000 00010011 10001010

综上,先把5002按位输出,采用表格形式展现如下:

位顺序 第1位 (buffer[0]) 第2位 (buffer[1]) 第3位 (buffer[2]) 第4位 (buffer[3])
十进制值 138 19 0 0
二进制 10001010 00010011 00000000 00000000
十六进制 8a 13 0 0

----依据上面表格内容,逆向推演

十进制:第4位(buffer[3]) * 256 + 第3位(buffer[2]) * 256 + 第2位(buffer[1])*256 + 第1位(buffer[0]) = 0*256 + 0*256 + 19*256 + 138 = 5002

十六进制:倒序组合,0 0 13 8a =138a =5002

------------------------------------------------------------------------

正题:C#中BitConverter.ToUInt16原理与用法

byte[] buffer = { 138, 19 };

uint highValue = BitConverter.ToUInt16(buffer, 0);  //输出5002

在内存中,数值型数据次序与数组是相反的,即低字节在前面,高字节在后面。

在内存中是(用 16 进制表示)8a ,13,当把这2个字节(从buffer字节数组下标为0开始)当成 int16 时,为 138a(十进制的 5002).

总结:也就是从数组中取下标为0以后的两个字节,先各字节转换为16进制,然后倒序组合,转换为10进制。

(十进制  -> 十六进制   -> 倒序  -> 十进制)

so:ToUInt16取2个字节,ToUInt32 取4个字节。ToUInt64 取8个字节,UInt表示无符号整数,无负数范围。

C#中BitConverter.ToUInt16、BitConverter.ToUInt32原理与用法详解的更多相关文章

  1. Oracle中的SQL分页查询原理和方法详解

    Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006

  2. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  3. JavaScript中return的用法和this的用法详解

    JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对this和函数中的return的用法和意思理解的比较模糊,这里写一篇博客跟大家一起探讨一下return和this的 ...

  4. Python函数装饰器原理与用法详解《摘》

    本文实例讲述了Python函数装饰器原理与用法.分享给大家供大家参考,具体如下: 装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值 ...

  5. PHP中public,private,protected,abstract等关键字用法详解

    PHP中常用的关键字 在PHP中包含了很多对函数和类进行限制的关键字,常用的通常有abstract,final,interface,public,protected,private,static等等, ...

  6. xargs原理及用法详解

    为什么需要xargs 管道实现的是将前面的stdout作为后面的stdin,但是有些命令不接受管道的传递方式,最常见的就是ls命令.有些时候命令希望管道传递的是参数,但是直接用管道有时无法传递到命令的 ...

  7. Unity 协程(Coroutine)原理与用法详解

    前言: 协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般(注意是一般)不考虑多线程,那么如何处理一些在主任务之外的需求呢,Unity给我们提供了协程这种方式 为啥在 ...

  8. JavaScript中bind、call、apply函数用法详解

    在给我们项目组的其他程序介绍 js 的时候,我准备了很多的内容,但看起来效果不大,果然光讲还是不行的,必须动手.前几天有人问我关于代码里 call() 函数的用法,我让他去看书,这里推荐用js 写服务 ...

  9. Css中路径data:image/png;base64的用法详解

    今天查看一些网站的css中发现了 background-image:url(data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAAB ...

  10. Shell编程中while与for的区别及用法详解【转】

    在shell编程中经常用到循环,常用的循环有for和while循环两种.while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别. 一.常用 ...

随机推荐

  1. 【数据结构与算法学习】散列表(Hash Table,哈希表)

    实现语言:C++ 1. 散列表 散列表,英文名称为Hash Table,又称哈希表.杂凑表等. 线性表和树表的查找是通过比较关键字的方法,查找的效率取决于关键字的比较次数. 而散列表是根据关键字直接访 ...

  2. QOE 驱动下的分布式实时网络构建:Agora SD-RTN 的演进

    编者按:近日,全球软件案例研究峰会在北京召开.全球软件案例研究峰会(简称"TOP100Summit")是科技界一年一度的案例研究榜单,每年甄选年度最值得借鉴的100个好案例,旨在揭 ...

  3. 关于springboot使用mybatis查询出现空指针,以及debug出现All Elements all Null的解决方法

    数据库中命名方式是带有下划线 ,然后在实体类中使用的是驼峰命名法 ,那么就需要在application.yml文件中加上 自闭了,那么简单的问题,没了解过真是摸不着头脑

  4. urllib.parse的使用

    urllib简介 urllib是pyhton自带的标准库用于网络请求库,无需安装,直接引用 通常用于爬虫开发,API(应用程序编程接口)数据获取和测试 urllib库的4大模块 urllib.requ ...

  5. 温故知新----线程之Runnable与Callable接口的本质区别

    温故知新----线程之Runnable与Callable接口的本质区别 预备知识:Java中的线程对象是Thread,新建线程也只有通过创建Thread对象的实例来创建. 先说结论 1 Runnabl ...

  6. 在ArcGIS Pro中对Revit的bim数据进行地理配准(平移、旋转等)

    在ArcGIS Pro中,打开Revit的rvt格式数据,默认是没有坐标系,且位置会放置在原点位置(0,0),在实际使用过程中,需要对rvt数据进行地理配准,包括平移.旋转等操作将bim数据放置在正确 ...

  7. 正态分布密度函数的动画演示—R语言

    正态分布是概率统计中最重要的一种分布,其重要性我们可以从以下两方面来理解:一方面,正态分布是自然界最常见的一种分布.一般说来,若影响某一数量指标的随机因素很多,而每个因素所起的作用都不太大,则这个指标 ...

  8. Python中,类的特殊方法与内置函数的关联

    目录 Python类 Python类的设计原则 特殊方法[Special methods] Duck typing 内置函数 English Version The key design princi ...

  9. [操作系统]记一次未尽的三星 Galaxy A6s(SM-G6200)刷机过程

    给女王大人刷机,第一次刷机,很遗憾,遇到了三星的"锁三键"问题,没有搞成.记录一下这个过程所涉猎的一些刷机基本知识,不妨当作一次学习过程. 1 刷机过程 Step1 查看手机基本信 ...

  10. [JavaScript]JS屏蔽浏览器右键菜单/粘贴/复制/剪切/选中 [转载]

    前两天在解决一个项目缺陷时,突发感兴趣,了解一下~ 1 JS事件 document.oncontextmenu // 右键菜单 document.onpaste //粘贴 document.oncop ...