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

无符号整数和带符号整数的相互转换

无符号字符数x转换为带符号字符数时,当x<2^{7}时,转换后仍然为x;当x\geq2 ^{7}时,转换后变为x-2^{8}

带符号字符数y转换为无符号字符数时,当y<0时,转换后变为y\dotplus 2^{8};当y\geq 0时,转换后仍然为y。

无符号整数和带符号整数的相互转换,实质上就是类型的强制转换。

源程序

void utosfun( unsigned char u[], char *pt1 );
void stoufun( char s[],unsigned char *pt2 );


void main()
{
    unsigned char ux[2]={9,129},syu[2],fsyu[2];
    char sy[2]={2,-2},uxs[2],fuxs[2];
    int i;
    utosfun(ux,uxs); 
    stoufun(sy,syu);
    for(i=0;i<2;i++)
     fsyu[i]=(unsigned char)sy[i]; //强制类型转换
    for(i=0;i<2;i++)
     fuxs[i]=(char)ux[i];  //强制类型转换
    while(1);

}


/**无符号数转换为带符号数**/
void utosfun( unsigned char u[], char *pt1 )
{
    int j,n=2;
    for(j=0;j<2;j++)
    {
     if(u[j]<(n<<7))
        pt1[j]=u[j];
     else
        pt1[j]=u[j]-(n<<8);
  }
}


/**带符号数转换为无符号数**/
void stoufun(char s[], unsigned char  *pt2)
{
    int k,n=2;
    for(k=0;k<2;k++)
    {
     if(s[k]<0)
        pt2[k]=s[k]+(n<<8);
     else
        pt2[k]=s[k];
  }
}

程序运行后:

带符号字符数组sy[]元素转换为无符号字符数后存放在数组syu[]中;数组sy[]元素强制转换为无符号字符数后存放在数组fsyu[]中。syu[]与fsyu[]元素相同。

无符号字符数组ux[]元素转换为带符号字符数后存放在数组uxs[]中;数组ux[]元素强制转换为带符号字符数后存放在数组fuxs[]中。uxs[]和fuxs[]元素相同。


    

http://www.dtcms.com/a/24584.html

相关文章:

  • 神经网络剪枝技术的重大突破:sGLP-IB与sTLP-IB
  • 向量库(Vector Database)
  • [笔记.AI]如何判断模型是否通过剪枝、量化、蒸馏生成?
  • 深入探索SQLAlchemy:模型定义与操作
  • 如何在本地和线上安装和配置RabbitMQ
  • 多种方式获取用户的相似度(附python源码)
  • 【Linux-网络】HTTP的清风与HTTPS的密语
  • Node.js 中 cookie-parser 依赖详解
  • 一种最常见的js加密解密
  • DeepSeek学术指南:DeepSeek在学术翻译改写能力应用操作案例!
  • Salesforce 检索Layout的设定
  • 深入理解Java中的ConcurrentSkipListMap
  • 【DeepSeek】Mac m1电脑部署DeepSeek
  • #渗透测试#批量漏洞挖掘#Fastjson 1.2.24 远程命令执行漏洞
  • EasyX安装及使用
  • FastDDS示例Windows下编译
  • Android程序自身重启程序的几种方法
  • 手写数字识别的神经网络 2层神经网络的类 代码详解
  • 2.18学习总结
  • Win10环境使用零讯ZeroNews内网穿透实现Deepseek对外服务
  • 解决 nodejs 设置cors 不生效问题
  • 从零开始构建一个小型字符级语言模型的详细教程(基于Transformer架构)之二模型架构设计
  • 修改mysql数据库远程访问
  • 【复现DeepSeek-R1之Open R1实战】系列5:SFT源码逐行深度解析
  • 计算机毕业设计Python商品推荐系统 商品比价系统 电商比价系统 商品可视化(代码+LW文档+PPT+讲解视频)
  • 实现动态翻转时钟效果的 HTML、CSS 和 JavaScript,附源码
  • 【koa】05-koa+mysql实现数据库集成:连接和增删改查
  • gcc和g++的区别以及明明函数有定义为何链接找不到
  • 7-1 打印沙漏
  • 【动态规划】落花人独立,微雨燕双飞 - 8. 01背包问题