c语言读取unsigned int

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言读取unsigned int相关的知识,希望对你有一定的参考价值。

怎么保证读取到一个unsigned int
而如果你输入像-3这样的负数要报错
,怎么保证scanf("%u",&u)
确实读取的是一个无符号数,
就用你们那方法,我也就不用问 你
我是想问个比较周全的解决法子

用long去读,读进来以后再转成unsigned int
基本上其他的输入也是这样,用宽的变量去读取输入,然后转成窄的,可以用宽的预先判断输入的合法性追问

如果我想读取unsigned long 怎么办
如果我想读取unsigned long long 怎么办

追答

你也太小看内存这个东西了吧,简单的讲,所有的输入都是字符串,所有的内存都是连续的,懂了吧

追问

哦,这也就是个折中的法子
没从本质上解决问题
我不管内存怎么样
我就是想确保输入的是junsigned,并且读取的unsigned的
不是说你输入一个-3什么的,转换出来是个xxxxx的大数

追答

用装B一点的话说就是施主,您着相了,你现在用的捕获输入输出,也是别人给我们封装好的,你要想用的简单直接,也可以自己封装一个用,C的标准库里面有很多函数都是在理想状况下写的,我们需要对其进行二次封装才能安全使用

参考技术A 输入后判断一下就可以了吧。。
例如
scanf("%d",&n);
if(n<0) 报错
这样

C语言中 unsigned int 取值范围是

整形(int)的取值范围是-32768到32767,无符合整形(unsigned int)取值范围是0到65535 参考技术A 0~4294967295

0x0~0xffff ffff

但是有的地方的unsigned int 只有16位,现在大部分的编程软件都是默认32位的
参考技术B 在 vc下是4字节

以上是关于c语言读取unsigned int的主要内容,如果未能解决你的问题,请参考以下文章

c语言读取unsigned int

从具有指定字节顺序的二进制 unsigned char* 读取 C 中的 double

如何用c语言把两个8位数据变成一个8位数据?

关于C语言中unsigned变量的问题?

在C语言中,unsigned char是啥类型?

在C语言中,unsigned char是啥类型