I study computer science and I learn about sign extension. I wonder: Are sign extension and padding referring to the same technique?
Terminology – Difference Between Sign Extension and Padding
terminology
Related Solutions
Web Services - that's standard defined by W3C, so they can be accessed semi-automatically or automatically (WSDL / UDDI). The whole thing is based on XML, so anyone can call it. And every aspect of the service is very well defined. There's parameters description standard, parameter passing standard, response standard, discovery standard, etc. etc. You could probably write 2000 pages book that'd describe the standard. There are even some "additional" standards for doing "standard" things, like authentication.
Despite the fact that automatic invoking and discovery is barely working because clients are rather poor, and you have no real guarantee that any service can be called from any client.
Web API is typically done as HTTP/REST, nothing is defined, output can be for eg. JSON/XML, input can be XML/JSON/or plain data. There are no standards for anything => no automatic calling and discovery. You can provide some description in text file or PDF, you can return the data in Windows-1250 instead of unicode, etc. For describing the standard it'd be 2 pages brochure with some simple info and you'll define everything else.
Web is switching towards Web API / REST. Web Services are really no better than Web API. Very complicated to develop and they eat much more resources (bandwidth and RAM)... and because of all data conversions (REQUEST->XML->DATA->RESPONSE->XML->VALIDATION->CONVERSION->DATA) are very slow.
Eg. In WebAPI you can pack the data, send it compressed and un-compress+un-pack on the client. In SOAP you could only compress HTML request.
Abstraction deals with simplification, indirection deals with location.
Abstraction is a mechanism that "hides" complicated details of a object in terms of simpler, easier to manipulate terms. In programming, a good example is the difference in details between machine code and the various tools for creating applications that are ultimately based on machine code. Consider creating a Windows Form application with the Visual Studio IDE. The IDE lets you think of the application in terms of easy-to-manipulate items in a What-You-See-Is-What-You-Get manner. The position of a screen widget is abstracted out to a visual location in a frame which you can change by dragging the widget around. Internally, the IDE manipulates the widget using another layer of abstraction such as a high level language (such as C#). C# itself is not manipulated using machine code, it is manipulated using a "Common Runtime Environment" which itself is an abstraction of a computer and operating system.
Indirection refers to making the location of an item transparent. If you know a web resource's URI, you can access the resource without knowing its precise location. You do not access the resource directly, instead you access through a channel that passes your request through a series of servers, applications and routers. Indirection may be considered to be a special type of abstraction where the location is abstracted.
Best Answer
Padding is a generic term that means filling up unused space with some pattern. There are a lot of different methods of padding, depending on what exact context it is being used in, for instance in cryptographic uses padding often includes a length field in order to ensure that the original size before padding can be determined.
Sign extending is a method used to convert a signed binary integer of one given size (in twos complement form, which is the most common method of storing such integers) to a larger signed integer. The process is add new bits on the left by duplicating the leftmost bit; i.e. for negative numbers the value is padded with 1s and for positive numbers it is padded with 0s, which will result in the same original value being retained in the new format.
Unsigned integers are increased in size by using "zero extension", which always uses a 0 bit.
This can be seen as padding if you want to view it in terms of using up available space, but really I think "format conversion" is a more natural way of thinking about the operation.