- 博客(2)
- 收藏
- 关注
原创 位操作符左移问题(<<)如果char类型左移后位数超出一字节如何打印?
目录有符号char现在有两个问题:为什么是256?为什么是负数无符号char为探究该问题,我们暂且设char sh = 128有符号char打印后变成了负数-256现在有两个问题: 为什么是256? 为什么是负数 为什么是256?首先,char类型占一个字节,无法表示256,那么它应当是自动转化为了较大的类型查阅资料知:当右移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型。——移位运算符<< ...
2021-10-11 23:41:53
2541
1
原创 如何打印一个十进制数的二进制补码(二补数,two‘s complement)
作者是C语言初学者,遇到这个问题后思考了很久,终于成功地解决了问题。我想把我的探索之路分享出来,希望在帮到各位的同时,给各位一点关于指针,堆栈,递归的启示。在网上查阅相关资料后,我确定了一种将十进制数转化为二进制补码的方法:强制转换为unsigned类型,因此,我写了如下函数:但是因为补码的特性,当输入负数的时候,就会因为该二进制的十进制表达的数值过大而溢出(如,二进制数11111111111111111111111111111111转换为十进制表达1111111111111111111111.
2021-10-04 15:30:29
983
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人