当前位置: 首页 > news >正文

大端小端存储二进制与字节的转换

大端小端二进制与字节的转换

单位换算

位:“位(bit)”是电子计算机中最小的数据单位。每一位的状态只能是0或1。

字节:8个二进制位构成1个“字节(Byte)”,它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。

字:“字”由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。字是计算机进行数据处理和运算的单位。

KB:在一般的计量单位中,通常K表示1000。

8bit(位)=1Byte(字节)

1024Byte(字节)=1KB

1024KB=1MB

1024MB=1GB

换算率约等于1000(1024),从大到小顺序为T、GB、MB(兆Zhao)、KB、B再小就是位了

在这里插入图片描述

1.什么是大端与小端?

  • 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。

  • 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。

下面以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况,我们可以用unsigned char buf[4]来表示value

Big-Endian: 低地址存放高位,如下:

低地址
buf[0] (0x12) -- 高位字节
buf[1] (0x34)
buf[2] (0x56)
buf[3] (0x78) -- 低位字节
高地址

Little-Endian: 低地址存放低位,如下:

低地址
buf[0] (0x78) -- 低位字节
buf[1] (0x56)
buf[2] (0x34)
buf[3] (0x12) -- 高位字节
高地址
内存地址小端模式存放内容大端模式存放内容
0x40000x780x12
0x40010x560x34
0x40020x340x56
0x40030x120x78

在这里插入图片描述

2. byte 转二进制字符串

这里以 16进制 0x35 为例,进行二进制字符串转换:(0x35 的二进制为 0011 0101)

public String byteToBinary(byte b){return ""+(b>>7&0x1)+(b>>6&0x1)+(b>>5&0x1)+(b>>4&0x1)+(b>>3&0x1)+(b>>2&0x1)+(b>>1&0x1)+(b>>0&0x1)
}
00110101

3. byte 转二进制字节数组

public byte[] toByteArray(byte b){byte[] arr=new byte[8];int len=arr.length;for(int i=0;i<len;i++){arr[i]=(byte)((b>>(len-1-i))&0x1);}return arr;
}
[0, 0, 1, 1, 0, 1, 0, 1]

以下转换例子都是以“小端存储”方式编码的

4. short与字节转换

short 占2byte

  • to byte[]
public byte[] shortTobyte(short n){byte[] arr=new byte[2];arr[0]= (byte) (n&0xff);arr[1]= (byte) ((n&0xff00)>>8);return arr;
}	
  • byte to short
public short byteToShort(byte[] arr){short n=(short)(arr[0]&0xff)|(short)((arr[1]<<8)&0xff00);return n;}

5. int 与字节转换

int 占用4byte
  • to byte[]

    public byte[] intToByte(int n){byte[] arr=new byte[4];arr[0]=(byte)(n&0xff);arr[1]=(byte)((n>>8)&0xff);arr[2]=(byte)((n>>16)&0xff);arr[3]=(byte)((n>>24)&0xff);return arr;
    }
  • byte to int

public int byteToInt(byte[] arr){int n=arr[0]&0xff|(arr[1]<<8)0xff|(arr[2]<<16)0xff|(arr[3]<<24)0xff;return n;
}
  1. long 与字节转换
    long 占用8byte
  • to byte[]
	public byte[] longToByte(int n){byte[] arr=new byte[8];arr[0]=(byte)(n&0xff);arr[1]=(byte)((n>>8)&0xff);arr[2]=(byte)((n>>16)&0xff);arr[3]=(byte)((n>>24)&0xff)arr[4]=(byte)((n>>32)&0xff)arr[5]=(byte)((n>>40)&0xff)arr[6]=(byte)((n>>48)&0xff)arr[7]=(byte)((n>>56)&0xff);return arr;}
  • byte to int
	public int byteToLong(byte[] arr){int n=arr[0]&0xff|(arr[1]<<8)0xff|(arr[2]<<16)0xff|(arr[3]<<24)0xff|(arr[4]<<32)0xff|(arr[5]<<40)0xff|(arr[6]<<48)0xff|(arr[7]<<56)0xff;return n;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35273.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

5个实用提速深度学习模型的方法

您是否通过深度学习模型获得了良好的准确性&#xff0c;却发现推理时间不足以部署到生产环境中&#xff1f;您是否对如何优化模型的推理速度迷失了方向&#xff1f;那么这篇文章是给你的。众所周知&#xff0c;数据科学项目有一个奇特的特性&#xff0c;即项目者需要不断转换关…...

Linux系统中安装MySQL

文章目录提前须知Linux版本的MySQL下载卸载系统自带的数据库安装前准备解压MYSQL安装包创建MYSQL用户和用户组创建data文件夹修改MYSQL目录的归属用户准备MYSQL的配置⽂件正式开始安装MYSQL复制启动脚本到资源目录设置MySQL系统服务并开启⾃启启动MySQLD将MySQL的BIN目录加入PA…...

(更新时间)2021年6月3日 商城高并发秒杀系统(.NET Core版) 24-性能优化-nginx负载均衡优化

一、关于Nginx的负载均衡 在服务器集群中&#xff0c;Nginx起到一个代理服务器的角色&#xff08;即反向代理&#xff09;&#xff0c;为了避免单独一个服务器压力过大&#xff0c;将来自用户的请求转发给不同的服务器。 二、Nginx负载均衡策略 负载均衡用于从“upstream”模…...

webui自动化测试框架(2)——对基本操作进行封装common

接上篇&#xff1a;webui自动化测试框架&#xff08;1&#xff09;——框架介绍 封装driver.py: driver的初始化&#xff0c;查找元素&#xff0c;点击元素&#xff0c;输入内容&#xff0c;切换iframe&#xff0c;切换Windows等 1.类&#xff0c;构造函数init里面适配浏览器…...

Python学习日记3

今天换了一个视频资源学习&#xff0c;因为发现之前的教学视频讲的是python2&#xff0c;python2跟现在的python3差别很大&#xff0c;所有换了一个平台学习。 今天学习内容主要是把python重新从头看了一遍&#xff0c;重新学习了一下&#xff0c;补充了关系运算符的知识&…...

如何用Python快速爬取小姐姐的美图

最近有一个小伙伴拿一个python代码来问我为什么报错&#xff1f; 我仔细一看&#xff1a;是用来爬取某个网站妹子图的代码&#xff0c;结果发现那个网站已经404了&#xff0c;当然爬不到了。 其实很多初学者都喜欢拿网上的案例作为练习&#xff0c;但是我们的爬虫可能会对一些…...

CentOS8安装activeMQ

Active简介 ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件&#xff1b;由于ActiveMQ是一个纯Java程序&#xff0c;因此只需要操作系统支持Java虚拟机&#xff0c;ActiveMQ便可执行。 它解决了下面的问题&#xff1a; 做到系统解耦&#xff0c;当新的模块接进来时&am…...

leetcode刷题笔记 322.零钱兑换【中等】

1、广度优先搜索 int coinChange(vector<int>& coins, int amount) {if (amount 0)return 0;int n coins.size();vector<int> flags(amount);queue<int> q;q.push(amount);int count 0;while (!q.empty()) {count;int s q.size();for (int i 0; i …...

wordpress新创建文章404问题解决

修改httpd.conf 找到AllowOverride None修改为ALL...

[高维随机矩阵-2]

本系列主要按照《Introduction to random matrices theory and practice》进行&#xff0c;后续不再一一声明。每次使用新资料&#xff0c;都会在第一次使用时声明&#xff0c;后续也不再一一生明。 1. 本书目标读者是绝对的零基础人员。 2.随机矩阵理论random matirx theory…...

EasyExcel + Vue +Springboot 前后端联动,快捷导出Excel文件

预期效果&#xff1a;前后台联动&#xff0c;即点击“导出Excel”按钮后弹出下载框 导出效果&#xff1a; 1. 引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.6</version>…...

优质ip代理怎么使用?

目前&#xff0c;大家上网越来越依赖于代理IP&#xff0c;代理IP的应用范畴正在逐步扩展。对于因特网这个巨大的网站空间&#xff0c;大家一样期待着这其中的标准和实际中的一样&#xff0c;因此也期待着自己的个人信息能在互联网上得到最大的利益维护。但是事实上由于互联网是…...

windows下python3.5+安装scrapy与创建项目

scrapy框架的安装与创建项目 scrapy安装&#xff1a; 相信第一次安装scrapy框架都会遇到各种安装不上的问题&#xff01;哈哈&#xff0c;别问我为啥知道&#xff01; 那我分享下我是如何安装scrapy框架的。 首先安装scrapy框架之前需要先安装几个依赖的库 依照顺序分别是 z…...

docker搭建LDAP统一用户认证

1. 安装LDAP docker run -dit \ -p 389:389 \ -v /data/ldap/ldap:/var/lib/ldap \ -v /data/ldap/slapd.d:/etc/ldap/slapd.d \ --name ldap \ --env LDAP_TLSfalse \ --env LDAP_ORGANISATION"pibigstar" \ --env LDAP_DOMAIN"pibigstar.com" \ --env LD…...

python数据分析——如何用python连接远程数据库

本文将以SQLite、MySQL&#xff0c;PostgreSQL为例讲解python怎样连接远程数据库并执行相关数据库操作。 SQLite SQLite可能是与Python连接的最方便的数据库&#xff0c;因为我们不需要安装任何外部Python SQL模块即可使用。默认情况下&#xff0c;Python会自带一个名为sqlite…...

在 IntelliJ IDEA 中为自己设计的类库生成 JavaDoc

因为某个项目需要&#xff0c;为团队其他兄弟姐妹开发了一个 XML 分析处理器&#xff0c;并将其设计为一个类库&#xff0c;提供相应的 API 接口。为了方便大家的使用&#xff0c;需要生成对应的 JavaDoc 帮助文档&#xff0c;就像 JavaSE 标准库提供的 JavaDoc 那样。我的开发…...

奔腾(BNTN) 380功放+纽约至尊 套装家庭影院

奔腾(BNTN) 380功放+纽约至尊 套装家庭影院送美诗特TA20无线话筒1套+自拍神器杆! DTS解码数字功放 HDMI、光纤、同轴多组输入输出 USB、蓝牙播放功能...

高瓴张磊:从学渣到投资大佬,也曾多次犯错

当年差点考不上初中的他&#xff0c;如今管理着超过5000亿元的资金。 来 源 | 财经新知&#xff08;ID&#xff1a;caijingxinzhi&#xff09; 作 者 | 端木清树 编 辑 | 伊页 1972年&#xff0c;河南省驻马店市的一对夫妻诞下一个男孩&#xff0c;并给他取了一个在当年绝对烂…...

Windows系统发布Asp.Net core应用到IIS上

如何在windows系统上发布一个Asp.net core应用的网站&#xff1f;踩了不少坑&#xff0c;现在简单总结如下。 亲测有效的系统&#xff1a; windows 7 x64windows 10 x64windows server 2016 x64 具体步骤如下&#xff1a; 1.Net Core SDK安装 .Net Core SDK是一组库和工具…...

攻防世界XCTF-WEB入门全通关

为了更好的体验&#xff0c;请见我的---->个人博客 XCTF的web块入门区非常简单&#xff0c;适合一些刚解除安全或者对网络安全常识比较了解的同学在安全搞累之余娱乐娱乐。 其主要考察下面几点&#xff1a; 基本的PHP、Python、JS语法基本的代理BurpSuite使用基本的HTTP请…...

vue websocket 连接 复制直接用

<script>export default {data() {return {websock: null,timer: "",startTime: "",endTime: "",}},created() {clearInterval(this.timer);this.timer setInterval(() > {this.initWebSocket();}, 1000);},destroyed() {this.websoc...

MySQL 高级(2): 索引的概念,分类,性能分析

索引优化分析 索引的概念 MySQL 官方对索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL 高效获取数据的数据结构。 可以得到索引的本质&#xff1a;索引是数据结构。可以简单理解为排好序的快速查找数据结构。在数据之外&#xff0c;数据库系统还维护…...

2021暑假每日一题 【week2 完结】

目录3763. 数字矩阵 【难度: 一般 / 知识点: 思维】3764. 三元数异或 【难度: 一般 / 知识点: 思维 贪心】3767. 最小的值 【难度: 一般 / 思维: 贪心 枚举】3768. 字符串删减【难度: 简单 / 知识点: 模拟】3769. 移动石子 【难度: 简单 / 知识点: 贪心】3763. 数字矩阵 【难度…...

数组--Leetcode 27. 移除元素

1、题目 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…...

SpringBoot2 中 spring.http.multipart.max-file-size 报错问题

由于springboot具有几个版本&#xff0c;不同版本对于文件上传最大限制的配置也有所不同。 所以要注意springboot本身的版本&#xff0c;不然会一直报错# 在springboot1.3版本中&#xff1a; multipart.maxFileSize# 在springboot1.4与springboot1.5版本中&#xff1a; spring.…...

慢慢学习,然后惊呆所有人(八,异常)

目录 ​ 什么是异常&#xff1f; 错误和异常的区别 异常的处理 try语法块&#xff1a; 抓捕异常&#xff1a; 多行异常的处理&#xff1a; 查看出现的异常情况 ​ 自定义异常和抛出异常 Java中异常继承关系 异常抛出&#xff1a; 自定义异常&#xff1a; finall…...

重拾React框架学习笔记总结

重拾React框架学习笔记总结 环境搭建 nvm nvm用来管理node版本。 brew install nvmnvm ls-remote // 查看所有的node可用版本 nvm list // 查看已安装node版本 nvm install 版本号 // 下载指定node版本&#xff0c;如nvm install v11.14.0 nvm use 版本号 // 使用指定版…...

客户端负载均衡Ribbon

文章目录Ribbon1&#xff09;、Ribbon模块2&#xff09;、RestTemplate结合Ribbon使用I、使用RestTemplateII、整合Ribbon3&#xff09;、负载均衡策略介绍4&#xff09;、自定义负载策略5&#xff09;、配置详情I、常用配置II、代码配置RibbonIII、配置文件方式配置Ribbon6&am…...

用Python搭建股票舆情分析系统

写在前面 下面的这篇文章将手把手教大家搭建一个简单的股票舆情分析系统&#xff0c;其中将先通过金融界网站爬取指定股票在一段时间的新闻&#xff0c;然后通过百度情感分析接口&#xff0c;用于评估指定股票的正面和反面新闻的占比&#xff0c;以此确定该股票是处于利好还是…...

python学习之路(第八天)---re模块正则表达式

python学习之路&#xff08;第八天&#xff09;—re模块正则表达式 python学习之路&#xff08;第八天&#xff09;---re模块正则表达式在线正则匹配正则匹配语法re.compile方法re.match方法re.search方法re.finditer方法转义匹配findall()正则表达式的实例正则表达式&#xff…...

Windows7驱动调试小Tips

Windows7驱动调试小Tips0x01在Windows7下面&#xff08;包括Win7的64位系统&#xff09;调试驱动时会发现DbgPrint&#xff08;DbgPrint使用方法参考[1]&#xff09;打印的内容并没有在DbgView里面显示出来&#xff0c;但是你可能有若干证据表明&#xff0c;相关代码肯定已经运…...

手把手教你写一个图片预览组件

一、前言 本篇主要介绍&#xff0c;vue项目手写一个图片预览组件&#xff0c;组件主要包括图片方法、图片缩小、显示原图、下载、复制等功能。 二、实现方式 首先我们需要做一个图片预览组件都有的功能表头&#xff0c;如下图 主要功能包括&#xff0c;放大、缩放比例显示、…...

64位WIN7系统下无法安装驱动/ 有黄色感叹号怎么办?

无法安装驱动的64位Windows7系统&#xff0c;下载并安装微软安全补丁即可: Microsoft Update Catalog 2019-适用于 Windows 7 的 09 安全更新&#xff0c;适合基于 x64 的系统 (KB4474419) 或者&#xff1a; Microsoft Update Catalog 基于 x64 的系统的 Windows 7 安全更新…...

CSS3自定义字体、字体图标

自定义字体 通常情况下&#xff0c;我们一般在设置字体的时候设置的是操作系统上的字体。如果用户的操作系统中没有该字体就会影响整个前端的一个用户体验。 在CSS3 中&#xff0c;新增了 自定义字体的内容&#xff0c;可以让我们自己定义一个字体&#xff0c;然后放到服务器上…...

更改radio单选框图标样式

利用jQuery和bootstrap更改radio样式 并利用图标glyphicon代替radio单选框原有的“圆点”选择区 <div class"container body-content"><div class"row"><div class"text-center col-xs-12"><h3>标题</h3><di…...

UX术语详解:任务流,用户流,流程图以及其它全新术语

以下内容由Mockplus&#xff08;摹客&#xff09;团队翻译整理&#xff0c;仅供学习交流&#xff0c;Mockplus是更快更简单的原型设计工具。用户体验拥有一长串专业的术语和可交付内容。当在线查看UX相关职位描述时&#xff0c;所罗列的这类术语更是全面繁多。而且&#xff0c;…...

前端如何提高用户体验:增强可点击区域的大小

你是否曾经试着点击或点击一个元素(例如:按钮、链接)&#xff0c;并且注意到只有单击该元素的特定区域&#xff0c;它才会响应&#xff1f;必生这种情况是因为可点击区域未应用于整个元素。为了更加清楚&#xff0c;请参见下图&#xff0c;左图可点击区别(圈红部分)明显比右图的…...

逆势高速增长,毫末征战三年诠释量产为王

作者 | 白日梦想家 编辑 | 王博“1096天&#xff0c;这是一场毫末人自己与自己“死磕”的大战。”11月29日&#xff0c;毫末智行在公司成立三周年的内部信中这样总结。 死磕的事情&#xff0c;包括&#xff1a; 以“自动驾驶三定律”为战略原点&#xff0c;创建了业内独有的毫末…...

基于用户体验的网页人机交互才符合网站建设目的

作为直接呈现给浏览者眼前的东西&#xff0c;设计和交互一直是网站建设中的两大重要元素。网站设计不用多言&#xff0c;直接关系到用户认知和企业形象的展示。前些年&#xff0c;由于带宽、计算等资源限制&#xff0c;网站上多半以静态展示为主&#xff0c;人机交互方面最多颜…...

这是最流行的浮动标签式表单,用户体验效果显著

在当今这个互联网时代&#xff0c;填写表单对用户来说就是家常便饭&#xff0c;在网站进行注册登录时、在网上购物时&#xff0c;都免不了填写表单这一环。表单是网页设计中重要的组成部分之一&#xff0c;在获取用户信息方面发挥着不可或缺的作用&#xff0c;它是用户和网站的…...

用户满意您的产品吗?20个用户体验调查问题给您答案

毫无疑问&#xff0c;用户体验调查是一种大规模采集用户反馈信息的有效方法。任何企业里&#xff0c;尤其在发布全新产品或进行产品迭代时&#xff0c;用户体验调查都可以派上用场。用户调查种类多样&#xff0c;提问式的用户调查因其成本低&#xff0c;操作简洁&#xff0c;往…...

webRTC的用户体验

webRTC的用户体验介绍 国内这方面资料比较少,查询了一些国外资料,进行一些总结,希望对大家有用.参考博客: 注意:本文图片链接可能需要翻墙,如果英文不错可以去看原文, 介绍 我们使用WebRTC的主要目的是应用它的如下如下几个功能 音视频捕捉视频显示音视频压缩网络通信. …...

matlab学习笔记(七)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 matlab学习笔记&#xff08;七&#xff09;一、 LTI系统的响应impulse( ) 函数step( )函数lsim( )函数系统无初态时系统有初始状态时二、使用步骤A1&#xff1a;A2&#xff1…...

UI设计教程-界面设计构图

九宫格构图&#xff0c;圆心点放射形构图&#xff0c;三角形构图&#xff0c;SF字形构图。 1.九宫格网格构图 这种版式主要运用在分类为主的一级页面&#xff0c;起到功能分类的作用。 通常在界面设计中&#xff0c;我们会利用网格在界面进行布局&#xff0c;根据水平方向和垂直…...

如何修改Centos7 终端字体的大小

如何修改Centos7 终端字体的大小 首先进入管理员模式 sudo su 我们需要进入到系统的字体库中 cd /lib/kbd/consolefonts 查看自己需要的字体ls -l(我推荐笔记本用sun12x22这个字体) setfont sun12x22 我们需要设置为开机就生效 echo “setfont sun12x22” >> /etc/profil…...

Linux终端的概念

壳(Shell):Shell 是指“提供给使用者使用界面”的软件&#xff08;命令解析器&#xff09;。我们在使用Linux时不直接与系统打交道而是通过Shell的中间程序。为什么称之为shell呢&#xff0c;是因为隐藏了操作系统底层的细节。 也是控制系统的脚本语言。是控制系统启动、X11 启…...

SuSE Linux 9下FTP、Telnet、图形终端服务的基本配置

图形终端服务 在SuSE9上进行某些操作需要使用图形界面&#xff0c;如安装oracle数据库&#xff0c;使用SuSE9自带的ethereal抓包工具等&#xff0c;为方便使用图形界面&#xff0c;我们可以启 动linux的图形终端服务&#xff0c;并安装xmanager等图形终端软件&#xff0c;下面…...

Ubuntu图形界面下打开终端

1、ctrlaltt 2、搜索Terminal 3、右键&#xff1a; Open Terminal 另切换到终端 图形界面切换终端&#xff1a;ctrlaltf1-f5&#xff0c; 终端切换回图形界面ctrlaltf7...

探索Linux之 终端模拟器和伪终端交互原理

写在前面&#xff1a;本人水平有限&#xff0c;很多地方都是自己的理解&#xff0c;如有误导&#xff0c;欢迎指正 # 终端模拟器指的是在linux桌面环境下运行的仿真终端&#xff08;如下图&#xff09; # 终端模拟器为啥叫模拟器呢? 因为真正的终端是全屏显示的黑乎乎的不带窗…...

终端设备:名词解释

文章目录终端历史1、终端之初2、图形终端2.1 图形字符终端2.2 图形终端3、伪终端设备3.1 终端模拟器3.2、网络终端4、其它概念终端历史 计算机设备总需要输入设备&#xff0c;输出设备&#xff1a; 输入设备用于控制计算机&#xff1b;输出设备用于计算机输出结果 1、终端之初…...