1.无符号数的赋值与实际值

unsigned char 是8位无符号数,不存在符号位,把符号位也当作数值位处理,表示的范围为[0,2^8-1],即[0,255]的256个数,T=2^8=256。

小于范围内的数+nT 使之在范围内,大于范围内的数-nT使之在范围内。

 1 #include <stdio.h>
 2 int main(void)
 3 {
 4     //unsigned char-[0,FF]
 5     unsigned char c1 = -2;
 6     unsigned char c2 = -1;
 7     unsigned char c3 = 255;
 8     unsigned char c4 = 256;
 9     unsigned char c5 = 257;
10     printf("c1 = %0X\n",c1);
11     printf("c2 = %0X\n",c2);
12     printf("c3 = %0X\n",c3);
13     printf("c4 = %0X\n",c4);
14     printf("c5 = %0X\n",c5);
15     return 0;
16
17 }

分析:

-2是负数:原码-1000 0010 补码-1111 1110  unsigned类型化原码(和补码直接相等) 1111 1110

-1是负数:原码-1000 0001 补码-1111 1111  unsigned类型化原码 1111 1111

255是正数:原码-1111 1111 补码-1111 1111 unsigned类型化原码 1111 1111

256是正数:原码-[1] 0000 0000 八位补码:0000 0000 unsigned类型化原码 0000 0000

257是正数:原码-[1] 0000 0001 八位补码:0000 0001 unsigned类型化原码 0000 0001

哲学结论:大者小之所伏,小者大之所倚。

二.有符号数的赋值与实际值

char 是8位符号数,存在1位符号位,表示的范围为[-2^7,2^7-1],即[-128,127]的256个数,T=2^8=256。

小于范围内的数+nT 使之在范围内,大于范围内的数-nT使之在范围内。

 1 #include <stdio.h>
 2 int main(void)
 3 {   //char - [-128,127]
 4     char c1 = 127;
 5     char c2 = 128;
 6     char c3 = 129;
 7     char c4 = -128;
 8     char c5 = -129;
 9     char c6 = -130;
10     printf("c1 = %d\n",c1);
11     printf("c2 = %d\n",c2);
12     printf("c3 = %d\n",c3);
13     printf("c4 = %d\n",c4);
14     printf("c5 = %d\n",c5);
15     printf("c6 = %d\n",c6);
16     return 0;
17
18 }

分析:

正数高位为0:原码=反码=补码

数字->原码->补码->[原码]->数字

127  0111 1111                 0111 1111          127

128  0 1000 0000          [0]1000 0000 <=>1 1000 0000(CPU处理猜测) -128

129  0 1000 0001          [0]1000 0001          -127

-128  1 1000 0000          [1]1000 0000 <=>1 1000 0000(CPU处理猜测) -128

-129  1 1000 0001          [1]0111 1111          127

-130  1 1000 0010          [1]0111 1110          126

哲学结论:大者小之所伏,小者大之所倚。
-0        1000 0000          [1]0000 0000           0

+0       0000 0000              0000  0000          0

另外一种算法:

大于127的数:该数-128+(-128) = 该数 - 256 = 该数 - 2^8

小于-128的数: 该数 - (-128) +128 = 该数 + 256 = 该数 + 2^8

为什么要减去或加上256而不是255呢?

因为8bit位的char的范围是[-128,127],共2^8=256个数。

即一个周期是256,所以需要减去256。

转载于:https://www.cnblogs.com/shijianchuzhenzhi/p/4383664.html

变量的域内赋值和域外赋值相关推荐

  1. 如何给图片赋值_医学数据的变量类型及在SPSS中的赋值方法(医学统计前的重要步骤)——【杏花开医学统计】...

    杏花开生物医药统计 一号在手,统计无忧! 关 注 医学数据的变量类型 及在SPSS中的赋值方法 关键词:医学数据,变量类型,赋值,spss 下方为视频版和音频版,含软件操作步骤 导  读 不同的医学数 ...

  2. stata行业变量怎么赋值_PEP572:赋值表达式(海象符)

    阅读 PEP 是理解 Python 特性的绝好方式.Python 3.8 引入了赋值表达式,它是什么?怎么用?有什么限制?话不多说,直接看 PEP. 一.简介 本提案建议在 Python 中增加 := ...

  3. php字符串赋值给变量,JavaScript-如何将一个PHP字符串安全赋值给Javascript变量(包含引号和换行符的)...

    php json_encode输出变量,在js使用(不是赋值)的时候转换成相应的字符串进行操作. 注意:因为中文在json_encode会出问题.因此大家写了一个第三方的json_encode; cl ...

  4. 域外计算机访问域内共享,域外用户如何拥有让其他电脑加域或退域的权限

    域外用户如何拥有让其他电脑加域或退域的权限 佚名  ChinaUnix博客  2011-07-27 域的真正含义指的是服务器控制网络上的计算机能否加入的计算机组合,这样在域内的计算机就可以共享资源,也 ...

  5. 华为路由协议ospf,域内路由,域间路由,域外路由

    ospf链路状态路由协议(开放式最短路径优先) 用ip承载其报文,协议号为89. ospf链路状态(link state)路由协议基本原理: 路由信息传递与路由计算分离,基于spf算法,以累计链路开销 ...

  6. AD域外计算机共享域内打印机出现“无法访问,没有权限访问网络资源,用户不得从此工作站登录网络”

    环景: win2019AD域 win10专业版 HP132打印机 问题描述: 之前是可以访问 AD域外计算机共享域内一台打印机出现"无法访问,没有权限访问网络资源,用户不得从此工作站登录网络 ...

  7. 变量的直接赋值和间接赋值

    直接赋值:直接赋予参数值的方式称为直接赋值. 间接赋值:由交互的方式赋值为间接赋值.(a就是一个变量) 转载于:https://www.cnblogs.com/zteng/p/10303728.htm ...

  8. 非阻塞赋值与阻塞赋值

    FPGA----非阻塞赋值与阻塞赋值 1.0简介 2.0阻塞赋值&非阻塞赋值 2.1阻塞赋值 2.2非阻塞赋值 2.3区别 3.0编码准则 4.0 举例 准则1)时序电路建模时,用非阻塞赋值: ...

  9. python的数组批量赋值_python数组赋值

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在学习python过程中数组是个逃不过去的一个关,既然逃不过去咱就勇敢面对它,学 ...

最新文章

  1. SpringCloud(若依微服务版)读取Nacos中的配置以及多个服务共享Nacos配置的使用
  2. python基础===使用switch方法,减少使用if语句
  3. PHP安装TP6的composer install报Undefined index: process 进程依赖于proc_open 这个函数不可用
  4. BZOJ 2754: [SCOI2012]喵星球上的点名
  5. c语言atm实训报告总体框架图,实训报告-ATM.doc
  6. 【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)
  7. DWG 、DXF格式互转、CAD版本转换,记住一个就能快速提高你的工作效率!
  8. BZOJ2794[Poi2012]Cloakroom——离线+背包
  9. 小象学院python数据分析课程怎么样_小象学院Python数据分析第二期【升级版】
  10. 【WPF、UWP】搜索蓝牙设备
  11. 一键生成IOS App Icon工具
  12. 王牌战士服务器维修,《王牌战士》8月12日更新维护公告 英雄免费解锁两周年专属活动...
  13. 高通平台开发系列讲解(USB篇)Linux Android USB软件架构
  14. Python tkinter之PhotoImage图片显示问题
  15. 单片机是指把组成微型计算机的各功能部件即,单片机结题报告.doc
  16. Java常见的一些面试题目
  17. python比较日期时间_python时间如何比较
  18. 利用MATLAB绘制逆发动机MAP图
  19. symbian 音频 汇总
  20. 2016-2017工作学习总结与展望

热门文章

  1. 软件质量保证与测试笔记——江湖救急版
  2. router vue 多个路径_vue-router 路径问题
  3. python unicodeencodeerror_解决 Python UnicodeEncodeError 错误
  4. 高德地图只显示一个省_浅谈当下各种导航软件:高德地图、百度地图、腾讯地图...
  5. matlab 转动惯量 叠加,一种汽车动力总成系统转动惯量合成方法
  6. 王者荣耀服务器响应超时,“团战”打游戏,为什么你的网络信号总是连接超时?...
  7. 4.通过Ubuntu指令生成GIF图片
  8. cmakelist官方教程_CMakeLists.txt文件如何编写?(一 基础篇)
  9. 安卓手机复制文件到电脑
  10. faster rcnn结构