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

数据类型及强制转换

数据类型范围(基本)

数据类型占内存字节数表示范围数量级
char(signed char)1-128~1272
unsigned char10~2552
short int(signed short int)2-32,768~32,7674
unsigned short int20~65,5354
int(signed int)4-2,147,483,648~2,147,483,647(-231 ~ 231-1)9
unsigned int40~4,294,967,2959
long int(signed long int)4-2,147,483,648~2,147,483,647(-231 ~ 231-1)9
unsigned long int40~4,294,967,2959
float4-3.4x10-38 ~ 3.4x103838
double8-1.7x10-308 ~ 1.7x10308308
long double8-1.7x10-308 ~ 1.7x10308308

有符号与无符号数据

  • 无符号数据(Unsigned Data):无符号数据只能表示非负整数。在内存中,无符号数据占用固定大小的存储空间,如8位、16位、32位等,视具体类型而定。例如,8位无符号数据可以表示0到255之间的整数。如果一个数值超出了该范围,那么它将会被截断或者溢出。在编程语言如C++中,通常使用“unsigned”关键字来表示无符号数据类型。
  • 有符号数据(Signed Data):有符号数据可以表示正数、负数和零。在内存中,有符号数据同样占用固定大小的存储空间,但是可以表示的范围比无符号数据更大。例如,8位有符号数据可以表示-128到127之间的整数。这是因为存储空间的一部分被用来表示负数,所以正数的表示范围相应地减少了。在编程语言如C++中,通常使用默认的整数类型来表示有符号数据。

无符号16位强制转换为有符号

python

# 强制转换为16位有符号数据
def get_s16(val):if val < 0x8000:  # 32768return valelse:return (val - 0x10000) # val - 65536

参考文章:
C语言基本数据类型及其范围
Python中读取到16进制数如何转成有符号数值

http://www.lryc.cn/news/248787.html

相关文章:

  • Python----高阶函数
  • Unity地面交互效果——6、地形动态顶点置换和曲面细分
  • Linux系统服务之一次性服务(2)
  • Vue项目解决van-calendar 显示白色空白,需滑动一下屏幕,才可正常显示
  • Linux:可视化管理工具Webmin的安装
  • WARNING: Access control is not enabled for the database.
  • JavaScript编程进阶 – Return语句
  • Python与设计模式--备忘录模式
  • 04_Flutter自定义Slider滑块
  • 服务器数据恢复—EMC存储raid5故障导致上层应用崩溃的数据恢复案例
  • 7.1 Windows驱动开发:内核监控进程与线程回调
  • 基于ssm的汽车论坛管理系统设计与实现
  • 实习开发日志经验总结(一)
  • 【Unity基础】8.简单场景的搭建
  • 傅里叶变换及其在机器学习中的应用
  • xorm源码学习
  • Vue3中的<script setup>和<script>的区别
  • Docker笔记-Docker搭建最新版zabbix服务端(2023-07-31)
  • QT配合CSS隐藏按钮
  • 2023亚太地区数学建模C题思路分析+模型+代码+论文
  • Linguistic Steganalysis in Few-Shot Scenario论文阅读笔记
  • 详细学习Pyqt5的4种项目部件(Item Widget)
  • notepad++ 插件JSONView安装
  • AKConv:具有任意采样形状和任意数目参数的卷积核
  • 如何使用C++开发集群服务
  • docker安装以及idea访问docker
  • 激光切割头组件中喷嘴的作用是什么
  • 腾讯云双11活动最后一天,错过再等一年!
  • Java实现飞翔的鸟小游戏
  • Python网络请求初级篇:使用Requests库抓取和解析数据