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

58同城做网站的电话什么软件可以推广

58同城做网站的电话,什么软件可以推广,关于加强公司 网站建设的通知,百度开户1.数据的存储和排列 是的,在C语言中,整数类型通常以补码(twos complement)形式存储在内存中。这是因为补码表示法在处理有符号整数的加减运算上更为简便和高效。 2.有符号数和无符号数之间的转换 在C语言中,有符号数和…

1.数据的存储和排列

 是的,在C语言中,整数类型通常以补码(two's complement)形式存储在内存中。这是因为补码表示法在处理有符号整数的加减运算上更为简便和高效。

 

2.有符号数和无符号数之间的转换

在C语言中,有符号数和无符号数之间的转换可以通过类型转换(type casting)实现。需要注意的是,这种转换会影响数值的解释。

有符号数转无符号数

将有符号数转换为无符号数时,二进制表示保持不变,但解释方式不同。

#include <stdio.h>int main(){int signed_num = -1;unsigned int unsigned_num = (unsigned int)signed_num; // 0xFFFFFFFFprintf("signed_num = %d, unsigned_num = %u\n", signed_num, unsigned_num);return 0;
} 

输出结果:

 

有符号数转无符号数在内存中的解释:

变量名内存地址二进制表示解释
signed_num0x7fffeeaee1011111111 11111111 11111111 11111111-1 (有符号数)
unsigned_num0x7fffeeaee1411111111 11111111 11111111 111111114294967295 (无符号数)

 可以看到二进制表示保持不变,只是改变了解释方式

无符号数转有符号数

将无符号数转换为有符号数时,同样二进制表示保持不变,但解释方式不同。

#include <stdio.h>int main(){unsigned int unsigned_num = 4294967295; // 0xFFFFFFFFint signed_num = (int)unsigned_num; // -1printf("unsigned_num = %u, signed_num = %d\n", unsigned_num, signed_num);return 0;
} 

 输出结果:

 

无符号数转有符号数在内存中的解释:

变量名内存地址二进制表示解释
unsigned_num0x7fffeeaee1811111111 11111111 11111111 111111114294967295 (无符号数)
signed_num0x7fffeeaee1c11111111 11111111 11111111 11111111-1 (有符号数)

 可以看到二进制表示保持不变,只是改变了解释方式

3.不同字长整数之间的转换

 

在C语言中,不同字长的整数之间的转换主要涉及位宽扩展和截断操作。

从小字长向大字长扩展

对于有符号数,可以通过符号扩展实现扩展;对于无符号数,可以通过零扩展实现扩展。

#include <stdio.h>int main(){char small_num = -1;int large_num = (int)small_num; // 符号扩展,小数到大数printf("small_num = %d, large_num = %d\n", small_num, large_num);unsigned char usmall_num = 255;unsigned int ularge_num = (unsigned int)usmall_num; // 零扩展printf("usmall_num = %u, ularge_num = %u\n", usmall_num, ularge_num);return 0;
} 

输出结果: 

 

从小字长向大字长扩展在内存中的解释:

变量名内存地址二进制表示解释
small_num0x7fffeeaee2011111111-1 (8位有符号数)
large_num0x7fffeeaee2411111111 11111111 11111111 11111111-1 (32位有符号数)
变量名内存地址二进制表示解释
usmall_num0x7fffeeaee2811111111255 (8位无符号数)
ularge_num0x7fffeeaee2c00000000 00000000 00000000 11111111255 (32位无符号数)

 对于有符号数,从小字长向大字长可以通过符号扩展实现扩展;

从大字长向小字长截断

当将大字长整数转换为小字长整数时,高位会被截断,只保留低位。

#include <stdio.h>int main(){int large_num = 257; // 0x00000101char small_num = (char)large_num; // 0x01printf("large_num = %d, small_num = %d\n", large_num, small_num);unsigned int ularge_num = 65537; // 0x00010001unsigned char usmall_num = (unsigned char)ularge_num; // 0x01printf("ularge_num = %u, usmall_num = %u\n", ularge_num, usmall_num);return 0;
} 

 输出结果:

 大字长到小字长整数之间的转换在内存中的解释:

数据类型变量名内存地址示例二进制表示解释
intlarge_num2570x701000000000 00000000 00000001 00000001257
charsmall_num10x7000000000011(截断)
unsigned intularge_num655370x701400000000 00000001 00000000 0000000165537
unsigned charusmall_num10x7008000000011(截断)

可以看到 大字长到小字长整数之间的转换在是直接截去多余的高位,只保留对应得低位。

http://www.ds6.com.cn/news/20292.html

相关文章:

  • 网站建设免费免费建网站的平台
  • 学校网站建设工作目标网站收录查询站长工具
  • 列举免费域名注册的网站公司网站排名
  • 网站制作公司 顺的南昌seo建站
  • 杭州网站建设哪家靠谱广州市疫情最新情况
  • 如何用浏览器访问本地的wordpressseo怎么去优化
  • 网站建设环境重庆网站制作公司哪家好
  • 怎样做php网站外贸网站建站和推广
  • 个人搭建网站教程seo搜索规则
  • 苏州模板建站定制企业培训内容
  • 网站备案一般由谁来做如何提高网站seo排名
  • 早晨设计 做网站设计吗体验式营销
  • matebook+e+网站开发goole官网
  • 做网站head.htm海外推广渠道都有哪些
  • 河北seo推广平台seo公司排行
  • 濮阳网站优化公司哪家好百度电话号码查询
  • 网站制作公司套路谷歌排名优化入门教程
  • 做逆战网站的名字百度登录入口官网
  • 网站怎么做百度排名好的网络推广平台
  • 做原油期货关注什么网站营销平台
  • 南宁品牌网站建设营销技巧在线完整免费观看
  • 营销推广活动方案seo怎么做新手入门
  • 网站社区怎么创建网络营销意思
  • 见网页制作的公司网站行业关键词分类
  • app 设计网站建设站长之家网站排名
  • 网站建设怎么添加图片上去今天有哪些新闻
  • 福州营销型网站建设价格宁波优化关键词首页排名
  • 手机建站专家请简述网络营销的特点
  • 直销返利网站开发排名优化关键词
  • 2003系统建网站大数据营销案例分析