Matlab中十六进制和二进制值数转换
目录
使用十六进制和二进制表示法表示整数
将十六进制和二进制值表示为文本
将十六进制值构成的数组表示为文本
将二进制表示转换为十六进制表示
使用二进制值的按位运算
可以将数字表示为十六进制或二进制值。在某些情况下,这些表示方式更加方便。例如,可以使用二进制值来表示硬件寄存器的位。在MATLAB® 中,有两种方式来表示十六进制和二进制值:
- 作为字面值。从 R2019b 开始,可以使用适当的前缀作为表示法,将十六进制和二进制值写成字面值。例如,字面值0x2A指定42,MATLAB 会将其存储为数字而不是文本。
- 作为字符串或字符向量。例如,字符向量''2A将数字 42 表示为十六进制值。当使用文本表示十六进制或二进制值时,请用引号将它括起来。MATLAB 将这种表示存储为文本,而不是数字。
MATLAB 中的一些函数可用于将数字与其十六进制及二进制表示相互转换。
使用十六进制和二进制表示法表示整数
十六进制字面值以 0x 或 0X 前缀开头,而二进制字面值以0b或0B前缀开头。MATLAB 将采用这种表示法的数字存储为整数。例如,以下两个字面值都表示整数 42。
A = 0x2A
A = uint842B = 0b101010
B = uint842
当用此表示法表示数字时,不要用引号。使用 0-9、A-F 和 a-f 表示十六进制数字。使用 0 和 1 表示二进制数字。默认情况下,MATLAB 将数字存储为能够容纳它的最小无符号整数类型。但是,可以使用可选后缀来指定存储该值的整数类型。
要指定无符号 8 位、16 位、32 位和 64 位整数类型,请使用后缀 u8、u16、u32 和 u64。
要指定有符号 8 位、16 位、32 位和 64 位整数类型,请使用后缀 s8、s16、s32 和 s64。
例如,要存储为有符号 32 位整数的十六进制字面值的表示如下。
A = 0x2As32
A = int3242
指定有符号整数类型时,也可以将负数写作字面值。用 2 的补码形式表示负数。例如,可以使用后缀 s8 以字面值指定负数。
A = 0xFFs8
A = int8-1
将十六进制和二进制值表示为文本
还可以使用 dec2hex 和 dec2bin 函数将整数转换为字符向量,以十六进制或二进制值表示它们。将整数转换为十六进制。
hexStr = dec2hex(255)hexStr =
'FF'
将整数转换为二进制。
binStr = dec2bin(16)binStr =
'10000'
由于这些函数生成文本,因此当需要表示数值的文本时,可以使用这些函数。例如,可以将这些值追加到标题或图标签上,或将它们写入以十六进制或二进制表示形式存储数字的文件中。
将十六进制值构成的数组表示为文本
要将数值数组转换为文本,推荐的方法是使用compose 函数。此函数返回与输入数值数组大小相同的字符串数组。要生成十六进制格式,请使用 %X作为格式设定符。
A = [255 16 12 1024 137]
A = 1×5255 16 12 1024 137hexStr = compose("%X",A)
hexStr = 1x5 string array"FF" "10" "C" "400" "89"
dec2hex 和 dec2bin 函数还将数值数组转换为文本,以十六进制或二进制值表示它们。但是,这些函数返回字符数组,其中每行表示输入数值数组中的一个数字,必要时用零填充。
将二进制表示转换为十六进制表示
要将二进制值转换为十六进制值,请从二进制字面值开始,并将其转换为表示其十六进制值的文本。由于字面值会被解释为数字,可以将其直接指定为 dec2hex 的输入参数。
D = 0b1111;
hexStr = dec2hex(D)hexStr =
'F'
如果从十六进制字面值开始,则可以使用dec2bin将其转换为表示其二进制值的文本。
D = 0x8F;
binStr = dec2bin(D)binStr =
'10001111'
使用二进制值的按位运算
二进制数的一个典型用途是表示位。例如,许多设备都有寄存器,用于访问代表内存中数据或设备状态的位集合。当使用这样的硬件时,可以在 MATLAB 中使用数字来表示寄存器中的值。使用二进制值和按位运算来表示和访问特定位。创建一个表示 8 位寄存器的数字。从二进制表示开始很方便,但该数字是以整数形式存储的。
register = 0b10010110register = uint8150
要获取或设置特定位的值,请使用位运算。例如,使用 bitand 和 bitshift 函数获得第五位的值。(将该位移至第一个位置,以使 MATLAB 返回 0 或 1。在此示例中,第五位是 1。)
b5 = bitand(register,0b10000);b5 = bitshift(b5,-4)
b5 = uint81
要将第五位翻转为 0,请使用bitset函数。
register = bitset(register,5,0)register = uint8134
由于register是整数,请使用 dec2bin 函数以二进制格式显示所有位。binStr是字符向量,表示不带0b前缀的二进制值。
binStr = dec2bin(register)binStr =
'10000110'
Matlab中十六进制和二进制值数转换相关推荐
- matlab 符号值转为实数,Matlab:在实现二进制到实数转换的公式时,无法获得唯一的有理数Part1...
存在非线性动态系统x_n = f(x_n,eta),其函数形式为x [n 1] = 2 * x [n] mod 1.这是一个混沌动力系统,称为锯齿图或伯努利图.我在实现Eq(4)和Eq(5)给出的逆映 ...
- matlab中读文件的行数_[转载]MATLAB中获取大型文本文件行数方法研究(转)
在工作中会有很多特殊的需要,比如我现在就遇到一个需要将大型的文本格式数据文件(比如5G)读取到MATLAB中,同时进行一定的处理.由于XP的内存是绝对没有办法将5G的数据一次性加载到工作空间的,此时一 ...
- matlab中读文件的行数_【Matlab】 读取文件各种方法
本技术支持指南主要处理:ASCII, binary, and MAT files.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令: help iofun MATLAB中有两 ...
- matlab中如何将Galois field array 转换 bin
matlab中的纠错编码使用的数据类型是Galois field array,但我们有时候需要将其转换为其它数据类型,如bin.dec或double等.网上有很多转换方法,但都很复杂.实际上这个转换非 ...
- matlab中读文件的行数_Matlab中读取txt文件的几种方法
Matlab中读取txt文件的几种方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为"17.901 -1.1 ...
- 二进制与十进制、八进制、十六进制相互转换,八进制与十六进制以二进制为跳板转换(8421法则)
C语言中相关进制表示: 十进制 以正常数字1-9开头,如123 八进制 以数字0开头,如0123 十六进制 以0x开头,如0x123 二进制 C语言不能直接书写二进制数 1. 二进制与十进制相互转换 ...
- 在C语言中十六进制与十进制的互相转换
十六进制,"逢十六进一".十六进制用的很多(比如:内存址.区块链地址等),最好熟练掌握. 在C语言中可以这样表示十六进制: singed int x1 = 0x22D; //0x或 ...
- matlab 16位灰度值转8位,在matlab中如何将灰度值为24位的转化为8?
我使用的是Visual c++6.0技术内幕里提供的类CDib来操作位图,最好提供可以两个独立的函数来分辨别实现着俩个功能.他们可以作为CDib类的成员函数来使用.类似下面的这个就可以,我用了下面的这 ...
- MATLAB中如何让分度值小点,实验6 干涉的matlab模拟.doc
实验6 干涉的matlab模拟.doc MATLAB在光信息处理中的应用课程上机实验(三峡大学2013年)实验6干涉的MATLAB模拟一.实验目的掌握双缝干涉.牛顿环的MATLAB模拟.二.实验内容1 ...
最新文章
- keil复制代码乱码_win7系统下Keil复制中文注释到记事本出现乱码的解决方法
- Android 高级自定义View实战
- 为了30分钟配送,盒马工程师都有哪些“神操作”?
- P2485-[SDOI2011]计算器【BSGS,exgcd,快速幂】
- 《走遍中国》珍藏版(十三)
- linux如何批量导出文件格式,Linux下批量将md文件转换为html文件
- 19 FI配置-财务会计-定义销售/采购税代码
- THINKPHP3文件缓存管理
- 不知道如何实现服务的动态发现?快来看看 Dubbo 是如何做到的
- 服装计算机辅助设计论文,计算机辅助高校服装设计论文
- 如何在 Spring Boot 优雅关闭加入一些自定义机制
- 【网易笔试】小易最近在数学课上学习到了集合的概念
- 找到的一个关于银行的介绍
- 外国人怎么样学计算机,适合外国人学中文的打字法
- Java编程那些事儿70——抽象类和接口(三)
- Openstack之Keystone组件解析
- 心理学导论--- 1 心理学在搞什么
- tesserocr识别图片
- 区块链笔记:技术栈、对等网络、密码技术、账户模型、网络共识、脚本系统、扩展技术
- 智能实验室-专用链转换 1.5.0.150