您的位置:首页 > 编程语言 > Java开发

关于Java与C类型的几个问题

2016-11-30 10:53 267 查看
1.Java byte类型

byte是Java的基础类型之一,它本身与int,char同属于一个级别,它是一个占一个字节(8bit)的整型;

byte是有符号数,范围在-128~127;

byte一般使用时可表示为十进制,八进制,十六进制;

2.一个字符数组可用byte[]来表示

由于基本ASCII码是由8位表示的,所以byte可用来表示所有基本ASCII字符,ASCII表如下:



3.这里来说一下计算机中的数据表示

我们通常所能看到的屏幕上的数据,是由编码表给我们展现的,实际上本身在计算机中存储的都是数,这个数我们说他是整型或者其他是由表示关系决定的;

于是比方说声明一个byte data = 12,



如byte是个ASCII字符,则其与int型可直接进制转换:

int dataint = 12
byte databt = (byte)12; //或
databt = (byte)0x0B;


4.C语言函数memset memcpy

函数原型 void *memset(void *s, int ch, size_t n);

函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s ;

memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法;

函数原型 void *memcpy(void*dest, const void *src, size_t n);

功能 由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。

头文件 string.h

返回值 函数返回一个指向dest的指针;

char[] data = {'a','b','c,'d'};
unsigned char datacopy[5];
memset(datacopy, 0x00, sizeof(datacopy));
memcpy(datacopy, data, 4);
//若只是字符型的复制可以使用strcpy,此处不讲


5.itoa

char*itoa(int value,char*string,int radix);

int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等

这个不是C标准库中的函数,而是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:

char str[255];

sprintf(str, “%x”, 100); //将100转为16进制表示的字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java c语言