栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言赋超过范围的值

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言赋超过范围的值

    例子1:

char s = 128;

printf("c = %dn", s);

1000 0000(计算机物理存储)(补码转原码)
补码1000 0000转反码(最高位为1,是一个负数,减1,得反码)
反码0111 1111转原码(按位取反,得原码)
原码1000 0000(从计算机物理存储中最高位是1,这是一个负数;)

(1000 0000,表示这个负数的绝对值,所以结果是-|1000 0000|)
输出-128

    例子2:

char s = 200;

printf("c = %dn", s);
1100 1000(计算机物理存储)(补码转原码)
补码1100 1000转反码(最高位为1,是一个负数,减1,得反码)
反码1100 0111反码转原码(按位取反,得原码)
原码0011 1000(计算机物理存储中最高位是1,这是一个负数;)

(0011 1000,表示这个负数的绝对值,所以结果是-|0011 1000|)
输出-56

    例子3:

char s = 129;

printf("c = %dn", s);

1000 0001(计算机物理存储)(补码转原码)
1000 0001(最高位为1,是一个负数,减1,得反码)
1000 0000(反码转原码,各位取反)
0111 1111  (从计算机物理存储中最高位是1,这是一个负数;)

(0111 1111,表示这个负数的绝对值,所以结果是-|0111 1111|)

结果(-127)

    例子4:

char s = 256;

printf("c = %dn", s);
1 0000 0000(若这个数被赋值给一个char型变量,那么char型变量仅能接受前8位)

(既char型变量的物理存储值为0000 0000)

0000 0000(计算机物理存储)(补码转原码)
补码0000 0000转反码(最高位为0,是一个正数,正数的反码为正数本身)
反码0000 0000转原码(正数的原码,为正数本身)
原码0000 0000(从计算机物理存储中最高位是0,这是一个正数,所表示的数为:0000 0000;)
输出0

    例子5:

char s = 257;

printf("c = %dn", s);

方法一:
‭0001 0000 0001‬(若这个数被赋值给一个char型变量,那么char型变量仅能接受前8位)

(既char型变量的物理存储值为0000 0001)
补码0000 0001‬转反码(正数的反码是正数本身)(补码转原码)
反码0000 0001转原码(正数的原码是正数本身)
原码0000 0001(从计算机物理存储中最高位是0,这是一个正数,所表示的数为:0000 0001;)
输出1

方法二:

char s = 257;

printf("c = %dn", s);

char类型的模为:2^8=256;

257大于模,转化为:257 - 256^1 = 1;

char s = 257   转化为 char s = 1 ;

    例子6:

char s = -5;

printf("s = %hhun", s);

-5

原码1000 0101(负数转反码,除符号位,其他位取反)(原转补码)

反码1111 1010(负数反码转补码,反码加1)

补码1111 1011(补码为计算机中的实际存储,若转化为unsign char = 1111 1011 = 251)

输出:251;

例子7:

short  s = -32755;

printf("s = %un", s);

printf("s = %un", s);//输出为unsigned int;

short  s = -32755  可转化为  int s = -32755;

unsigned int 类型的模为: 2^32=4294967296;

int s = -32755;负数所储存的物理值等同与其绝对值的补数,2^32-|-32755| = 4294934541;

既 -32755的物理储存,与4294934541的物理储存,是完全一样的;

short  s = -32755转化为unsigned int s = 4294934541;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444167.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号