当前位置: 首页 > 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[]元素相同。


    

相关文章:

  • 神经网络剪枝技术的重大突破: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对外服务
  • 鸿蒙电脑正式发布,国产操作系统在个人电脑领域实现重要突破
  • 央媒聚焦文明交流互鉴中的“上博现象” :跨越山海,抒写自信
  • 国家统计局:4月份各线城市商品住宅销售价格环比持平或略降
  • 中国旅游日|上天当个“显眼包”!低空经济的“飞”凡魅力
  • 梅花奖在上海|秦海璐:演了15年《四世同堂》,想演一辈子
  • 中共中央、国务院印发《党政机关厉行节约反对浪费条例》