一、基础知识

  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. Javaweb项目和Maven项目的相关导包

    Javaweb项目的学习大致需要一下几个导包: 以上几个包需要导入到WEB-INF目录下的lib文件夹里面,主要操作如下: 1.新建一个lib文件夹(在WEB-INF目录下) 2.右键lib文件夹,选 ...

  2. Javaweb基础复习------Filter相关应用+登录验证案例的使用

    Filter(过滤器) 基本步骤: 1.定义类,实现Filter接口,并重写其所有方法 2.配置Filter拦截资源的路径,在类上定义2 WebFilter注解(WebFilter配置的路径,是拦截资 ...

  3. Pod概述

    Pod的类型 Pod的类型有如下两个: 自主式Pod:自主式Pod的含义简白来说就是不是被控制器管理的Pod,另一种就是被控制管理的Pod,不被控制器管理的Pod你会发现,它一旦死亡的话,就没有人把它 ...

  4. 再谈回声消除测评丨Dev for Dev 专栏

    本文为「Dev for Dev 专栏」系列内容,作者为声网音视频实验室工程师 黄译庆. 音频质量的优化是一个复杂的系统工程,回声消除是其中一个老生常谈的话题,一般来说,回声消除的效果受设备本身的声学设 ...

  5. 第一章 1.1.1节 Kubeadm安装K8S高可用集群

    1.1 安装前必读 请不要使用带中文的服务器和克隆的虚拟机. 生产环境建议使用二进制的方式安装. 文档中的IP地址要更换成自己的IP地址,要谨记!!! 1.2 基本环境配置 kubeadm安装方式自1 ...

  6. Gitee 码云与Git 交互

    一.进入码云官方网站,注册用户 官网地址:https://gitee.com/ 二.创建远程仓库 [1]点击右上角的 + 号进行创建

  7. Yaml入门与使用

    一.入门 1.概念:  yml是YAML("YAML Ain't a Markup Language)语言文件,以数据为中心,而不是一标记语言为重点,比json,xml更适合做配置文件. 为 ...

  8. 选择KV数据库最重要的是什么

    本文分享自华为云社区<选择KV数据库最重要的是什么?>,作者:GaussDB 数据库 . 经常有客户提到KV数据库,但却偏偏"不要Redis".比如有个做安全威胁分析平 ...

  9. 【ACM算法竞赛日常训练】DAY10题解与分析【月月给华华出题】【华华给月月出题】| 筛法 | 欧拉函数 | 数论

    DAY10共2题: 月月给华华出题 华华给月月出题 难度较大. 作者:Eriktse 简介:211计算机在读,现役ACM银牌选手力争以通俗易懂的方式讲解算法!️欢迎关注我,一起交流C++/Python ...

  10. 【CTF】关于 .init .fini .init_array .fini_array 日志 2019.7.16 pwn

    查找资料的高效性 retn 返回到栈顶地址 关于 .init .fini .init_array .fini_array 其中存放着的是在main函数执行前执行的代码,由__libc_start_ma ...