一、基础知识

  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
2^N的值(10进制整数值) 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、十六进制 to  十进制,输出5002

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       (注:组合顺序,从大至小,也就是 0 0 13 8a ,与计算机中数组表现顺序相反)

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

正题: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表示无符号整数,无负数范围。

posted @ 2023-05-19 13:59 乡下伢 阅读(2218) 评论(0) 推荐(5) 编辑
摘要: 在实际开发中,可能很少人会手写sql脚本来操作数据库的种种。特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而导致很多人都不会或不熟悉使用SQL脚本操作数据库。 接下面介绍的是我们日常开发中常规性的各种操作,先 阅读全文
posted @ 2017-02-23 16:53 乡下伢 阅读(19482) 评论(0) 推荐(1) 编辑
摘要: 可能很多人有这样的疑问,我们为什么要了解原码、反码、补码,它能帮助我们解决什么问题?在编写代码中有什么实际用途呢? 我是这样认为的,其一,作为计算机基础知识,我们必须有所了解。其二、这些基础知识无论是普通的编写代码,还是研究高超的算法都离不开它。 例:我们常见的位运算 按位与(&)、按位或(|)、取 阅读全文
posted @ 2017-02-16 17:04 乡下伢 阅读(1244) 评论(0) 推荐(0) 编辑
摘要: 关于js中this的浅析,大家可以点击【彻底理解js中this的指向,不必硬背】这篇博客了解。 今天遇到2段比较有意思的代码。 第一段 function a(xx){this.x=xx;return this}; var x=a(5);var y=a(6); console.log(x.x); co 阅读全文
posted @ 2016-05-10 15:40 乡下伢 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 当用户访问页面时,整个页面将会被服务器保存在内存中,这样就对页面进行了缓存。当用户再次访问该页,页面不会再次执行数据操作,页面首先会检查服务器中是否存在缓存,如果缓存存在,则直接从缓存中获取页面信息,如果页面不存在,则创建缓存。页面输出缓存适用于那些数据量较多,而不会进行过多的事件操作的页面,如果一... 阅读全文
posted @ 2015-09-02 13:52 乡下伢 阅读(901) 评论(0) 推荐(0) 编辑
摘要: 需要引用jquery调用非常简单:一、 向上滚动$(".scroll_two").jScroll({vertical:true}); 声明| 农夫山泉关于公益捐赠的严正声明 新车| 外观媲美轿车 全新一代奥德赛9月初亮相 活动| 开启燕京啤酒清爽... 阅读全文
posted @ 2015-07-24 15:41 乡下伢 阅读(1958) 评论(0) 推荐(0) 编辑
摘要: 1,新建只能访问某一个表的只读用户。--添加只允许访问指定表的用户:execsp_addlogin'用户名','密码','默认数据库名'--添加到数据库execsp_grantdbaccess'用户名'--分配SELECT整表权限GRANTSELECTON表名TO[用户名]--分配SELECT权限到... 阅读全文
posted @ 2015-04-17 14:56 乡下伢 阅读(13558) 评论(0) 推荐(0) 编辑
摘要: 最近项目中发现一怪问题,使用DB项目发布数据库时,总提示“(110,1): SQL72014: .Net SqlClient Data Provider: Msg 1222, Level 16, State 56, Procedure sp_refreshsqlmodule_internal, Li... 阅读全文
posted @ 2015-04-09 18:01 乡下伢 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 例:在下面的例子中,“目录包含page1.htm,page2.htm,page3.htm和page4.htm。如下所示的web.config文件将执行以下操作/pages/page1.htm会重定向到/newpages/newpage.htm/pages/page2.htm会重定向到谷歌/pages... 阅读全文
posted @ 2015-02-11 10:34 乡下伢 阅读(1988) 评论(0) 推荐(0) 编辑
摘要: 把输入规模看成x轴,所花时间/空间看成y轴。O(n)就是y=x,y随x的增长而线性增长。一条斜线O(1)就是y=1,不管x如何变,y不变。一条与x平行的线举个简单的例子,要从0加到n,我们会这么写:intsum=0;for(inti=0;i<=n;++i){sum+=i;}一共算了n次加法,那么就说... 阅读全文
posted @ 2014-12-27 14:17 乡下伢 阅读(870) 评论(1) 推荐(0) 编辑
点击右上角即可分享
微信分享提示