首页 > 其他分享 >20240803进制、BCD码

20240803进制、BCD码

时间:2024-08-05 09:28:20浏览次数:18  
标签:十六进制 字节 二进制 BCD int str 20240803 type 进制

比特、字节、进制之间的关系

​ 每一个二进制位就是一个比特,即一个字节是八个二进制位

​ 例如:

十六进制的60

转成对应的二进制:01100000

01100000每一位是一个bit,不能再拆分了

​ 以下是问ai关于某进制数占用字节空间的问题:

​ 问:一个十六进制数,占几个字节?

​ 答:一个十六进制数本身并不直接占用固定的字节数,因为它仅仅是一个数的表示形式,类似于十进制或二进制数。十六进制数的占用空间(即字节数)取决于它所表示的数值大小以及它是如何被存储或传输的。

然而,在大多数编程和数据处理环境中,当我们谈论十六进制数时,我们通常是在处理固定大小的数据类型,如8位(1字节)、16位(2字节)、32位(4字节)或64位(8字节)的整数。在这些情况下,十六进制数(或其对应的二进制表示)将占用该数据类型指定的字节数。

例如:

  • 如果一个十六进制数被存储在一个8位的byte(或unsigned char)数据类型中,那么它就占用1个字节。
  • 如果它被存储在一个16位的short(或unsigned short)数据类型中,那么它就占用2个字节。
  • 对于32位的int(或unsigned int)和64位的long long(或unsigned long long),则分别占用4个字节和8个字节。

需要注意的是,十六进制只是一种数的表示方法,它并不改变数值本身所占用的空间。无论一个数是用十进制、二进制还是十六进制表示,它在计算机中的存储和传输都是以其二进制形式进行的,并且所占用的空间取决于它被声明或定义时的数据类型。

linux查看python进程

ps aux | grep python:这会查出所有python进程

kill -9 PID:杀掉指定进程

十六进制串转字节串

hex_str = '68 0B 00 68 C9 08 08 00 10 00 02 60 00 01 00 45 C0 16'  
# 首先,我们需要去除字符串中的空格(如果有的话),因为fromhex()不接受空格  
hex_str_no_spaces = hex_str.replace(' ', '')  
  
# 然后,使用bytes.fromhex()将十六进制字符串转换为字节串  
byte_str = bytes.fromhex(hex_str_no_spaces)  
  
print(byte_str)  # 输出: b'h\x0b\x00h\xc9\x08\x08\x00\x10\x00\x02`\x00\x01\x00E\xc0\x16'  
print(type(byte_str))  # 输出: <class 'bytes'>

字节串转十六进制串

bcd_str = ''  
int_str = ''  
recvdata = b'h\x0b\x00h\xc9\x08\x08\x00\x10\x00\x02`\x00\x01\x00E\xc0\x16'  
  
for item in recvdata:  
    print(f'item:{item}, type:{type(item)}')  
    bcd_str += '%02X ' % item  # 转换为十六进制并添加空格  
    int_str += ' ' + str(item)  # 转换为十进制并添加空格,注意这会在字符串开头添加一个额外的空格  
  
# 移除int_str开头的空格  
if int_str:  
    int_str = int_str[1:]  
  
print(f'bcd_str: {bcd_str.strip()}, type:{type(bcd_str)}')  # 使用strip()去除末尾的空格  
print(f'int_str: {int_str}, type:{type(int_str)}')

BCD码和进制:

​ 一个十进制的BCD码,将其BCD码作为一个二进制数,计算这个二进制数的16进制,结果和这个十进制数一样。

45的bcd码是0100 0101,把01000101当成二进制,其16进制也是45

165的bcd码是0001 0110 0101,把0001 0110 0101当成二进制,其16进制位165

标签:十六进制,字节,二进制,BCD,int,str,20240803,type,进制
From: https://www.cnblogs.com/marverdol/p/18342605

相关文章

  • 20240803题解
    话说T3都把式子推出来了结果忘记差分约束怎么写了。光线(light)题面:有\(n\)个玻璃板,第\(i\)个玻璃板的透光率为\(a_i\%\),反射率为\(b_i\%\),有大小为\(1\)个单位的一束光从第\(1\)个玻璃板开始,有多少光能穿透\(n\)层玻璃板。题解:考虑\(n=2\)时,可以简单算出两个玻璃板组合后的反......
  • docker安装zabbix 20240803
    宿主机IP:192.168.177.1281、下载数据库:dockerpullmysql:5.7 2、下载支持数据库的zabbix:dockerpullzabbix/zabbix-server-mysql:centos-latest 3、下载web容器:dockerpullzabbix/zabbix-web-nginx-mysql:latest  4、下载java监控:dockerpullzabbix/z......
  • E25.【C语言】练习:修改二进制序列的指定位
    十进制13-->二进制01101现要求二进制序列的第5位修改为1,再改成0复习:逻辑运算非(NOT)(C语言:~)x==0,NOTx-->1;x==1,NOTx-->0与(AND)(C语言:&)x=0或1,xAND0-->0,0ANDx-->0或(OR)(C语言:|)x=0或1,xOR1-->1,1ORx-->1异或(XOR)(C语言:^)x==0或1,xXOR1-->NOTx和1XORx-->......
  • C语言:进制
    简介说到进制,我们最为熟知的便是十进制,今天我们来说一下二进制,八进制和十六进制。所谓二进制,就是逢二进一,同样的,八进制和十六进制也就是逢八进一,逢十六进一。注意:十六进制中10到15用ABCDEF表示。举几个数字作为例子:十进制二进制八进制十六进制111110101012A10011001001446......
  • 三种语言实现计算二进制中1的个数(C++/Python/Java)
    题目给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。输入格式第一行包含整数n。第二行包含n个整数,表示整个数列。输出格式共一行,包含n个整数,其中的第i个数表示数列中的第i个数的二进制表示中1的个数。数据范围1≤n≤100000,0≤数列中......
  • 如何在 PySpark 中将二进制图像数据转换为 RGB 数组?
    我有一个具有以下架构的pysparkdf:root|--array_bytes:binary(nullable=true)我希望能够将其转换为图像数组。我可以使用以下代码在Pandas中完成此操作:df_pandas=df.toPandas()defbytes_to_array(byte_data):arr=np.frombuffer(byte_data,dtype=np......
  • Selenium“没有提供‘moz:firefoxOptions.binary’功能,并且在命令行上没有设置二进制
    我一直在尝试将python脚本移植到我的wsl/bash编码中心中。我继续收到此错误:Traceback(mostrecentcalllast):File"/path/to/my/file.py",line20,in<module>driver=webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))Fil......
  • 进制与进制转换
    进制与进制转换1.什么是进制?进制是指在数值系统中,使用的数码的个数。最常见的进制有二进制、十进制和十六进制。二进制使用0和1,十进制使用0-9,十六进制使用0-9和A-F。2.进制转换二进制转十进制将二进制数的每一位乘以2的该位次方,再将所有乘积相加。例如,二进制数1010转为十......
  • 二进制|原码、反码、补码
    1.原码原码是计算机中表示整数的一种方法,其中最高位为符号位,其余位为数值位。正数符号位为0,负数符号位为1。例如,+5的原码为00000101,-5的原码为10000101。2.反码反码是将原码中的数值位按位取反而得到的。正数的反码与原码相同,负数的反码是符号位保持不变,数值位按位取反。例如......
  • 二进制序列化和字符串序列化
    经常用json字符串序列化,倒是忘记也可做二进制序列化。在文件上传时,如果序列化为字符串,再按字符串上传,这样是否会数据量变大呢?今天试了试两种序列化方式:dotnet自带的BinaryFormatter和Newtonsoft privatevoidbutton3_Click(objectsender,EventArgse){......